1).#include 预处理命令
#include 命令有如下两种形式:
#include <filename>
#include "filename"
它们的差别在于查找欲包含文件的起始位置不同。
用引号括起来:预处理程序就会从待编译文件所在待编译目录里开始查找欲包含的文件,这种方法通常用于包含程序员定义的头文件。
用<>:用于标准函数库的头文件,预处理程序就会按照一种依赖于系统实现的方式,通常是在预先指定的编译器和系统目录中进行查找。
2).条件编译
条件编译使用户能够控制预处理命令的执行以及对程序代码的编译。每一个条件预处理命令都要计算一个整型常量表达式的值。但是类型强转表达式、sizeof表达式及枚举常量的值不能再预处理命令中计算。
如下代码:
#if !defined(MY_CONSTANT)
#define MY_CONSTANT 0
#endif
首先判断MY_CONSTANT是否被定义了。如果定义了,则表达式defined(MY_CONSTANT)的值为1,否则为0.如果该表达式的值为0,则!defined(MY_CONSTANT)的值久为1,于是就定义MY_CONSTANT,否则#define预处理命令就被略过。
每个#if结构都以#endif来结束。预处理命令#ifdef和#ifndef是#if defined(name)和#if !defined(name)的缩写形式。对于多分枝的条件预处理结构,需使用命令#elif(等价于if语句中的else if)和#else(等价于if语句中的else&#x