知识点总结:
预处理 以"#"开头的命令
(1)宏定义 #define ...
(2)文件包含 #include ...
(3)条件编译 #indef ...
宏定义 #define 标识符 字符串
带参数的宏定义 #define 宏名(参数表) 字符串
谨慎带参数的宏定义的副作用,原样替换,整体替换时要给参数加括号
文件包含 ?多文件程序组织
源文件与头文件的分离
一般头文件的几类内容:
对自定义类型的声明
函数声明
宏定义
全局变量定义
外部变量声明
或包含其他头文件
include命令的两种形式:
#include <文件名> 文件在系统目录中
#include "文件名" 文件默认在用户的当前目录中
GCC编译器中的头文件和库函数:
条件编译 :根据需要只编译程序中的某一部分
常用于对程序的调试中
条件编译的常用形式:
文件包含中的一个问题(重复包含):
文件包含保护--条件编译的另一用法(三行)
心得:
预处理—>文件包含—>头文件—>宏定义—>条件编译
其中文件包含中包含源文件和头文件,头文件又含系统目录中的头文件和自定义在当前目录下的头文件
要将源文件和头文件分离,拿什么样的内容应该放在头文件中呢?
宏定义可以是常见的定义符号常量也可以带参数进行宏定义,特点是原样替换
条件编译常用在程序调试中和文件保护中,在自定义的头文件中条件编译避免文件重复包含