设为首页 加入收藏

TOP

C语言的预处理命令
2015-08-31 21:23:13 来源: 作者: 【 】 浏览:20
Tags:语言 处理 命令

C语言编译器处理时经过的第一个步骤是预处理,就是从.c文件处理为.i文件。在预处理时编译器做了一些展开替换的处理。


  1>头文件展开,即将#include "stdio.h"类似的文件展开。


  2>宏定义的替换工作,即将程序中的宏定义内容替换好。


#include"stdio.h"


#define R 10


int main()


{


? ? int a = R;


}


  经过预处理之后代码变为


//...stdio.h里的内容未展示


//宏定义的地方已经替换到程序中


int main()


{


? ? int a = 10;
 ?   return 0;


}


  宏定义做的替换是整体替换,和语法无关,它不遵循语法规则。


  宏定义一般两种用法,一种是定义一种常量,另一种是定义一个宏函数。


#define N(n,m) n+m//宏定义


int main()


{


? ? ? ? int c;


? ? ? ? c = N(1,2);//对1和2相加
      return 0;? ? ? ? ?


}


  其实经过预处理之后变为


int main()


{


? ? int c;


? ? c = 1 + 2;
     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语言视频学的。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java基于数据源的数据库访问 下一篇C++复制构造函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: