Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / C语言的预处理命令

C语言编译器处理时经过的第一个步骤是预处理,就是从.c文件处理为.i文件。在预处理时编译器做了一些展开替换的处理。 1>头文件展开,即将#include "stdio.h"类似的文件展开。 2>宏定义的替换工作,即将程序中的宏定义内容替换好。#include"stdio.h"#define R 10int main(){    int a = R;} 经过预处理之后代码变为//...stdio.h里的内容未展示//宏定义的地方已经替换到程序中int main(){    int a = 10;<br>   return 0;} 宏定义做的替换是整体替换,和语法无关,它不遵循语法规则。 宏定义一般两种用法,一种是定义一种常量,另一种是定义一个宏函数。#define N(n,m) n+m//宏定义int main(){       int c;       c = N(1,2);//对1和2相加 <br> return 0;          } 其实经过预处理之后变为int main(){    int c;    c = 1 + 2;<br> return 0;} 另一种应用宏函数,因为宏定义不会考虑语法,它只是作整体代换,所以可以写出不考虑变量类型的函数,这一点是他的优点 举例说明,如下代码:#define N(n,m) n+m//宏定义int main(){    int e = N(10,20) * N(10,20)//预处理之后是int e = 10 + 20 * 10 + 20;//上面容易算错误!!    return 0;} 3>条件编译:有些语句希望在条件满足时才编译。#ifdef 标识符 //程序段1#else //程序段2#endif 当标识符已经定义时,程序段1才参加编译 在其使用时和define一样也是做了一个替换工作。对C语言有了一定认识。。。看Linux C语言视频学的。本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-08/122415.htm