预处理器

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

 

 

posted on 2013-05-12 10:35  ukouryou  阅读(135)  评论(0编辑  收藏  举报

导航