当前位置 : 主页 > 编程语言 > c语言 >

预处理命令

来源:互联网 收集:自由互联 发布时间:2023-08-28
预处理是进行文本操作 预定义符号 printf("%s\n", __FILE__); //__FILE__进行编译的源文件 printf("%d\n", __LINE__); //__LINE__文件当前进行的行号 printf("%s\n", __DATE__); //__DATE__文件被编译的日期 printf(

预处理是进行文本操作                                                                        

预定义符号

printf("%s\n", __FILE__);  //__FILE__进行编译的源文件

printf("%d\n", __LINE__);  //__LINE__文件当前进行的行号

printf("%s\n", __DATE__);  //__DATE__文件被编译的日期

printf("%s\n", __TIME__);  //__TIME__文件当前被编译的时间


预处理指令:由#开头的都是预处理指令

比如:

#define  #include  #pragma pack(4)  


宏定义:

 

如果定义宏是表达式时尽量带上()

比如:

#include <stdio.h>

#define square(x) x*x

int main()

{

//int ret = square(5);

//等价与 ret=x*x;

// //所以ret为25

int ret = square(5+1);

等价于5+1*5+1=11

printf("%d\n", ret);

return 0;

}


#把一个宏参数变成对应的字符串

例子:

#define PRINTF(X) printf("the value of "#X"   is %d\n",X)

int main()

{


int a = 10;

int b = 20;


PRINTF(a);

//printf("the value of "a" is of %d\n",a);


PRINTF(b);

//printf("the value of "b" is of %d\n",b);

return 0;

}


##可以把位于它两边的符号合成一个符号。


#undef  移除一个宏指令


条件编译:

1.#if 常量表达式

   //......

#endif

常量表达式为真编译,否则不编译

  printf("%d\n", arr[i]);

如果_DEBUG_定义了则编译  printf("%d\n", arr[i]);语句,否则不编译。

#include <stdio.h>

#define _DEBUG_

int main()

{

 int arr[10] = {0};

int i;

for (i = 0; i < 10; i++)

{

 arr[i] = i;

#ifdef _DEBUG_ //条件编译

  printf("%d\n", arr[i]);

#endif

 }

 return 0;

}


2.多分支条件编译



上一篇:常见的coding技巧
下一篇:没有了
网友评论