1.C预处理器在源代码编译之前对其进行一些文本性操作。它的主要任务包括删除注释、插入被#include指令包含的文件的内容、定义和替换由#define指令定义的符号以及确定代码的部分内容是否应该根据一些条件编译指令进行编译。
2.#define机制包括了一个规定,允许把参数替换到文本中,这种实现通常称为宏或者定义宏。
3.所有用于对数值表达式求值的宏定义都应该用这种方式加上括号,避免在使用宏时,由于参数中的操作符或邻近的操作符之间不可预料的相互作用。
4.和使用函数相比,使用宏的不利之处在于每次使用宏时,一份宏定义的代码的拷贝都将插入到程序中,除非宏定义非常短,否则使用宏可能会大幅度增加程序的长度。
5.undef name 用于移除一个宏定义
6.-Dname 用于命令行定义。。在命令行中定义符号,用于启动编译过程。
7.嵌套文件包含必须要这样写。
#ifndef
#define
#endif
8.条件编译
#if constant-expression
statement
#endif
9函数库文件包含用<>,本地文件包含用" "
10.无效指令就是一个#符号靠头的语句,但后面不跟任何内容的一行。
11.#inde 和#ifndef可以测试某个符号是否已被定义