C使用相关笔记
#将c文件编译成动态库
//hello.c int hello_add(int a, int b)
{
return a + b;
} gcc -O -c -fPIC -o hello.o hello.c // -fPIC:是指生成的动态库与位置无关。 将hello.c编译成hello.o
gcc -shared -o libhello.so hello.o // -shared:是指明生成动态链接库 将hello.o链接成libhello.so动态库 #使用一个动态库
//hello_test.c #include <stdio.h> int main()
{
int a = 3, b = 4, result = 0;
result = hello_add(a, b);
printf("%d + %d = %d\n", a, b, hello_add(a,b));
printf("%d======\n", result);
return 0;
} cp libhello.so /usr/lib/ //将生成的动态库复制到lib目录
gcc -o hello_test -lhello hello_test.c //通过-l选项来指定要使用的相关动态库 #关于const常量
const int *a;
int const *a; //值不可变,地址可以变 int * const a; //值可变,地址不可变 int const * const a; //值和地址都不可变 #include <stdio.h> void test_const(int * const a)
{
//int c = 5;
//*a = c;
(*a)++;
//a++;//
printf("0x%x\n", a);
printf("%d\n", *a);
} int main(void)
{
int b = 2; test_const(&b);
return 0;
} #野指针 会导致 段错误(“segmentation fault”) #指针也有类型,所以a++这种操作系统才知道要移动几个内存单元。
#指针的类型是在指针定义时确定的。比如:“int *p;”中“int *”就指明了这是一个什么类型的指针。如果p++,那系统根据指针类型就知道要移动几个内存单元格。
如果“p + 1”是否也是根据指针类型来确认移动几个内存单元? #Makefile有三个非常有用的变量。分别是$@,$^,$<代表的意义分别是:[1]
$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件。 #Makefile中输出一个变量的内容
echo $(OUTPUT_DIR) #Makefile中要用tab缩进,否则会引起语法错误 #Makefile字符串拼接 [1] [2]
var3=${var1}${var2}
C使用相关笔记的更多相关文章
- HTTPS证书申请相关笔记
申请免费的HTTPS证书相关资料 参考资料: HTTPS 检测 苹果ATS检测 什么是ECC证书? 渠道2: Let's Encrypt 优点 缺点 Let's Encrypt 的是否支持非80,44 ...
- JNI相关笔记 [TOC]
JNI相关笔记 目录 JNI相关笔记 1 生成native code所需要的头文件 2 JNI提供的一些函数和方法 3 局部引用,全局引用,全局弱引用. 4 异常 1 生成native code所需要 ...
- Hadoop相关笔记
一. Zookeeper( 分布式协调服务框架 ) 1. Zookeeper概述和集群搭建: (1) Zookeeper概述: Zookeeper 是一个分布式 ...
- redis相关笔记(二.集群配置及使用)
redis笔记一 redis笔记二 redis笔记三 1.配置:在原redis-sentinel文件夹中添加{8337,8338,8339,8340}文件夹,且复制原8333中的配置 在上述8333配 ...
- redis相关笔记(三.redis设计与实现(笔记))
redis笔记一 redis笔记二 redis笔记三 1.数据结构 1.1.简单动态字符串: 其属性有int len:长度,int free:空闲长度,char[] bur:字符数组(内容) 获取字符 ...
- Windows API 进程相关笔记
0. 前言 最近做了一个进程信息相关的项目,整理了一下自己做项目时的笔记,分享给大家 1. 相关概念 1.1 HANDLE 概念 HANDLE(句柄)是Windows操作系统中的一个概念. 在Wind ...
- PHP相关笔记
扩展包(相关链接):https://packagist.org/: 插件postman主要应用于web开发时get.post请求时查看其响应:
- lua相关笔记
--[[ xpcall( 调用函数, 错误捕获函数 ); lua提供了xpcall来捕获异常 xpcall接受两个参数:调用函数.错误处理函数. 当错误发生时,Lua会在栈释放以前调用错误处理函数,因 ...
- Erlang使用相关笔记
#从源码编译安装Erlang 1. wget http://www.erlang.org/download/otp_src_r16b.tar.gz -p /usr/local/src 2. tar z ...
随机推荐
- 注册事件处理程序onclick和addEventListener、attachEvent
一.设置HTML标签属性为事件处理程序(注意和下面的设置javascript对象属性为事件处理程序是不同的) 用于设置文档元素事件处理程序属性也能化成对应的HTML标签的属性.如果这样做,属性值应该是 ...
- 【原】iOS学习45之多媒体操作
1. 音频 1> 音频实现简述 iOS 里面共有四种专门实现播放音频的方式: System Sound Services(系统声音服务) OpenAL(跨平台的开源的音频处理接口) Audio ...
- BZOJ1795 : [Ioi2008]Pyramid Base 金字塔地基
1.$B>0$ 二分答案,然后扫描线,线段树维护某个点作为左下角时的费用的最小值,支持区间加. 时间复杂度$O(n\log^2n)$. 2.$B=0$ 枚举左边界,则最优右边界可以通过双指针求出 ...
- java中的IO操作总结
一.InputStream重用技巧(利用ByteArrayOutputStream) 对同一个InputStream对象进行使用多次. 比如,客户端从服务器获取数据 ,利用HttpURLConnect ...
- mobile web HTML5 app曾经的踩过坑(转)
兼容性一直是前端工程师心中永远的痛.手机浏览器,因为基本是webkit(blink)内核当道,很多公司,不用考虑IE系的浏览器,所以感觉兼容性上的问题可能会少一些. 但是手机端,虽然出了很多工具,但是 ...
- Codeforces Round #228 (Div. 2) B. Fox and Cross
#include <iostream> #include <string> #include <vector> #include <algorithm> ...
- 洛谷 P1262 间谍网络 Label: Kosarajn强联通
题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意交出手中掌握的全部情报 ...
- UIButton在Disabled状态下标题混乱的问题
最近开发中遇到的问题汇总 有段时间没有归纳开发中遇到的一些问题了,今天就写一下之前开发中遇到的几个问题.希望这 篇文章能让读者在以后的开发中少走弯路.本文将依次介绍<UIButton在Disab ...
- AVD模拟器运行异常
The connection to adb is down, and a severe error has occured. (1)现将eclipse关闭 (2)打开命令行(cmd),输入:cd + ...
- js鼠标滑轮滚动事件绑定(兼容主流浏览器)
/** Event handler for mouse wheel event. *鼠标滚动事件 */ var wheel = function(event) { var delta = 0; if ...