预处理器

进行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

4.文件包含:

你可能感兴趣的:(C语言)