进行C语言的开发,在进行调试之前有一个预处理过程,
预处理对代码进行一些文本性质的操作,如:删除注释,插入被#include的内容,定义和替换由#define的内容。
1.预定义符号:
FILE : 进行编译的原文件名
LINE : 文件当前的行号
DATE :文件被编译的日期
TIME :文件被编译的时间
STDC :如果编译器遵循ANSI C格式,则返回1
2.#define
#define name stuff
//如果一行放不下:
#define DEBUG_PRINT printf("File %s Line %d :" \
"x = %d,y = %d,z = %d"\
__FILE__,__LINE__,\
x,y,z)
2.1宏:
宏允许把参数替换到文本中
#define a(x) x * x
int main(void)
{
int x = 1;
int y = 2;
int z = 3;
printf("%d\n",a(z));
printf("%d\n",a(z + 1));
//a(z+1) == 3+1*3+1 = 7
printf("%d\n",a((z + 1)));
return 0;
}
//ans = 9;
//ans = 7;
//ans = 16;
提示对于所有对数值表达时求值的宏定义都应该采用加括号的方式
#define a(x) ((x) + (x))
有些语言对使用了C语言的宏定义来对C语言采取了新的封装
2.6#undef
移除现有的宏定义
3.条件编译
#define DEBUG 1
#if DEBUG
printf("x = %d,y = %d",x,y);
#elif ---
---
#endif