所有预处理器命令都是以井号(#)开头:
指令 | 描述 |
#include | 包含一个源代码文件 |
#if | 如果给定条件为真,则编译下面代码 |
#elif | 如果前面的 #if 给定条件不为真,当前条件为真,则编译下面代码 |
#else | #if…#elif…#else语句,如果if...elif...条件为假,则编译下面代码 |
#endif | 结束一个 #if……#else 条件编译块 |
#include
#include的用法有两种,尖括号<>和双引号""
尖括号:编译器会到系统路径下查找头文件
双引号:编译器会先在当前目录下查找头文件,如果没有找到,再到系统路径下查找
注意事项:
1、一个 #include 命令只能包含一个头文件
2、同一个头文件可以被多次引入,多次引入的效果和一次引入的效果相同,因为头文件在代码层面有防止重复引入的机制
3、头文件包含允许嵌套
(头文件只能包含变量和函数的声明,不能包含定义,否则在多次引入时会引起重复定义错误)
#if(条件编译)
格式如下:
#if 整型常量表达式1
程序段1
#elif 整型常量表达式2
程序段2
#else
程序段3
#endif
#include<stdio.h>
#define max 10
int main()
{
printf("max = %d\n", max);
#if max == 10
printf("max已被定义\n");
#else
printf("max未被定义\n");
#define max 20
#endif
printf("max = %d\n", max);
return 0;
}