一、编译预处理: 1.宏定义: 以 #define 开始,分为带参数和不带参数两种。 不带参数的宏定义: #define PI 3.14 宏替换只是宏名誉字符串之间的简单替换,不做其他任何数据类型和合法性检查,也不分配内存空间。 带参数的宏定义: #define MUL(x , y) (x)*(y)
分类:
编程语言 时间:
2016-02-28 11:03:47
阅读次数:
262
一、gcc编译:预处理--->编译--->汇编--->链接--->可执行文件 1.gcc -E xxx.c 对源文件进行预处理(xxx.i):以#开头的条件都会在预处理阶段解决掉; 2.gcc -S xxx.i 对文件进行编译(xxx.s) 3.gcc -c xxx.s对文件进行汇编(xxx.o)
分类:
系统相关 时间:
2016-02-22 13:29:40
阅读次数:
199
typedef 和define的区别总结一下typedef和#define的区别1.概念 #define 它在编译预处理时进行简单的替换,不作正确性检查。它是预处理指令。 typedef 它在自己的作用域内给一个已经存在的类型一个别名。它是在是在编译时处理的。 例子:#define:#define....
分类:
其他好文 时间:
2016-01-13 10:37:53
阅读次数:
158
------- ios培训、 android培训、java培训、期待与您交流! ----------一.编译预处理指令源代码->编译预处理->编译->链接->运行编译预处理指令:在编译前进行解析处理的指令特点:所有编译预处理指令都以#开头 所有编译预处理指令都不加分号二.宏定义1.不带参数的宏定义....
分类:
其他好文 时间:
2015-12-08 22:24:49
阅读次数:
194
一、C语言由源代码生成的各阶段如下:C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中编译预处理阶段,读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理。或者说是扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。预处理过程先于编译器对源代码...
分类:
其他好文 时间:
2015-12-02 00:50:41
阅读次数:
237
模板和STL一、模板的背景知识1.针对不同的类型定义不同函数版本。2.借助参数宏摆脱类型的限制,同时也因为失去的类型检查而引 入风险。3.借助于编译预处理器根据函数宏框架,扩展为针对不同类型的 具体函数版本,一方面统一编写通用的算法和结构,另一方面 也具有函数调用的类型安全性。4.通过编...
分类:
其他好文 时间:
2015-10-15 22:04:00
阅读次数:
212
C中的预编译宏定义 2009-02-10 作者: infobillows 来源:网络 在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理....
分类:
其他好文 时间:
2015-10-05 12:57:07
阅读次数:
195
1.#define 的作用 在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动....
分类:
其他好文 时间:
2015-09-25 11:09:59
阅读次数:
172
1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define pi 3.1415926程序中的:area=pi*r*r 会替换为3.1415926*r*r如果你把#define语句...
分类:
编程语言 时间:
2015-09-24 00:41:18
阅读次数:
251
1.生成一个C++程序的步骤? ??编译预处理;编译;链接 2.名字空间的作用? ??名字空间是用来处理不同代码段名称冲突问题的。 3.名字空间的使用方法? ??方法一:先把名字空间中的声明(如名字空间变量对象成...
分类:
编程语言 时间:
2015-09-21 12:36:05
阅读次数:
218