C 语言三大预处理功能:
- 宏定义
- 文件包含:include
- 条件编译
宏定义:
#undef
终止宏定义的作用域- 宏定义允许嵌套
#include <stdio.h>
#define PI 3.14
void main(void)
{
printf("圆的半径为3\n");
#undef PI
//产生错误:未定义标识符 "PI"
printf("面积是%f\n", PI * 3 * 3);
getchar();
}
#include <stdio.h>
#define PI 3.14
#define R 6371
#define V PI*R*R*R*4/3
//宏定义允许嵌套
void main(void)
{
printf("地球的半径为%d\n",R);
printf("面积是%f\n", V);
getchar();
}
- 带参数的宏定义
C 语言允许宏定义带有参数,在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数,这点和函数有些类似。
例如:#define MAX(x, y) (((x) > (y)) ? (x) : (y))