C语言的预处理命令

C语言的预处理命令

 

  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语言视频学的。

 

posted @ 2015-08-28 21:57 #Cloud 阅读( ...) 评论( ...) 编辑 收藏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值