** C/C++ 程序的编译预处理和条件编译指令详解**
编译预处理
(1)#include 包含指令作用为 将一个源文件嵌入到当前源文件中该点处。
#include<文件名> : 按标准方式搜索,文件位于C++系统目录的include子目录下
#include"文件名" : 首先在当前目录中搜索,若没有,再按标准方式搜索。
(2)#define 宏定义指令
定义符号常量,很多情况下已被const定义语句取代。
定义带参数宏,已被内联函数取代。
(3)#undef 用来删除由#define定义的宏,使之不再起作用。
条件编译指令情况一
#if 常量表达式1
程序正文1 //当“ 常量表达式1”非零时编译
#elif 常量表达式2
程序正文2 //当“ 常量表达式2”非零时编译
#else
程序正文3 //其他情况下编译
#endif
条件编译指令情况二:
如果“标识符”经#defined定义过,且未经undef删除,则编译程序段1;否则编译程序段2。
#ifdef 标识符
程序段1
#else
程序段2
#endif
条件编译指令情况三:
如果“标识符”未被定义过,则编译程序段1;否则编译程序段2。
#ifndef 标识符
程序段1
#else
程序段2
#endif