预处理器
1.文件包含
#include "filename"
#include <filename>
<>先去系统目录中找头文件,如果没有在到当前目录下找。所以像标准的头文件 stdio.h、stdlib.h等用这个方法。
而""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。
2.宏替换
#define name 替换文本
若换行则在待续的行末尾加上反斜杠\
文本可以是表达式
define存在一些缺陷(max(a++,b++))
宏定义函数(高效),可以通过#undef指令取消名字的宏定义
参数名以#作为前缀规则,结果将被扩展为由实际参数替换该参数的带引号的字符串。
预处理运算符##为宏扩展提供了一种连接实际参数的手段。参数被实际参数替换,##与前后的空白符被删除
3.条件包含
#if SYSTEM == SYSV
#define HDR "sysv.h"
#elif SYSTEM == BSD
#define HDR "bsd.h"
#elif SYSTEM == MSDOS
#define HDR "msdos.h"
#else
#define HDR "default.h"
#endif
#include HDR
#ifndef HDR
#define EDR
/* hdr.h file*/
#endif