预处理主要是处理以#开头的命令。
前面的案例中已经多次使用过#include命令。使用库函数之前,应该用#include引入对应的头文件。
常见的预处理指令见下表:
| 指令 | 说明 |
|---|---|
| # | 空指令,无任何效果 |
| #include | 包含一个源代码文件 |
| #define | 宏定义 |
| #undef | 取消已定义的宏 |
| #if | 如果给定条件为真,则编译下面代码 |
| #ifdef | 如果宏已经定义,则编译下面代码 |
| #ifndef | 如果宏没有定义,则编译下面代码 |
| #elif | 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码 |
| #endif | 结束一个#if……#else条件编译块 |
实例:
//预处理指令实例
#include<stdio.h>
//不同平台,引入不同的头文件
#if _WIN32
#include<windows.h>
#elif _linux_
#include<unistd.h>
#endif
int main()
{
//不同平台下调用不同的函数
#if _WIN32
Sleep(5000);
#elif _linux_
sleep(5);
#endif
puts("hello world!\n");
return 0;
}