预处理器

C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤。简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理。我们将把 C 预处理器(C Preprocessor)简写为 CPP。

重要的预处理器指令:

Untitled

预定义宏

ANSI C 定义了许多宏。我们可以使用这些宏,但是不能直接修改这些预定义的宏

Untitled

预处理器运算符

#include <stdio.h>

#define tokenpaster(n) \\\\
	printf ("token" #n " = %d", token##n)

int main(void)
{
   int token34 = 40;

   tokenpaster(34);
   return 0;
}

输出结果: token34 = 40 原因:从编译器产生的实际输出 printf ("token34 = %d", token34);

常量表达式:在编译期间进行求值的表达式

参数化的宏

CPP允许使用带参数的宏来模拟函数 e.g. #define MAX(x,y) ((x) > (y) ? (x) : (y))