- 博客(8)
- 收藏
- 关注
转载 [转]C语言中定义变量“#X”,”X##”, “##X” 和“##X##”解析
关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:1. #使用#define WARN_IF(EXP) /do{ if (EXP) /fprintf(stderr, "Warning: " #EXP “/n”); } /while(0)那么实际使...
2019-04-29 17:30:42
413
原创 linux c基础------内存管理
数据存放位置未初始化的全局变量 .bss段存放没有初始化或初始化为0的全局变量不占文件空间,只占运行内存初始化过的全局变量 .data段初始化非零的全局变量既占文件空间,又占运行内存。常量数据 .rodata段多个进程间共享删除重复的字符串一部分嵌入式系统中,rodata 放在 ROM 或 NOR Flash中,运行时直接加载到RAM内存中在嵌入式中,可以用XIP(就地...
2019-04-28 10:59:29
145
原创 linux c基础------数组与指针
数组用指针访问数组用指针遍历数组,效率更高。for(p=a;p<&a[MAX]'p++){ x=*p; /*do something*/}不可以用sizeof获得数组大小while(*strings){ puts(*strings++);}void f(char a[12]){ ++a;}指针理解指针时,最好将其分为 指针类型 和 指针所指向...
2019-04-27 15:42:29
130
原创 linux c基础------数据类型
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2019-04-26 16:28:52
198
原创 vim实用指令
vim删除x 向后伤处一个字符#x 向后删除#个字符X 向前删除一个字符#X 向前删除#个字符dd 删除整行#dd 从光标开始删除#行复制yw#ywyy#yyp恢复u 恢复上一次操作查找/关键字 往后查找,n继续?关键字 往前查找,n继续...
2019-04-25 11:02:38
130
原创 gcc编译器
本文将从编译过程,优化选项,静态动态链接库三个方面补充gcc编译器的相关知识O0不做任何优化,这是默认的编译选项。debug时要用O0O1优化会消耗少多的编译时间,它主要对代码的分支,常量以及表达式等进行优化。O2会尝试更多的寄存器级的优化以及指令级的优化,它会在编译期间占用更多的内存和编译时间。O3在O2的基础上进行更多的优化,例如使用伪寄存器网络,普通函数的内联,以及针对循环的更多优化...
2019-04-25 11:02:15
162
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人