[转帖]预处理程序
ANSI标准定义的C预处理程序命令:
#define #error #include #if #else #elif #endif #indef #ifndef #undef #line #pragma ----------------------------------------------------------
#define 预定义常量
#error 强迫编译程序停止编译,主要用于程序调试
#if 其一般含义是:如果#if后面的常量表达式为true,则编译它与#endif之间的代码,否则跳过。
#endif 标识一个#if块的结束
#else 的功能有些类似于C中的else。其建立另一选择,在#if失败的情况下起作用。
#elif 与else if 相同,它形成一个if else-if阶梯状语句,可进行多种编译选择。
#elif后跟一个常量表达式。如为true,则编译其后的代码段,不对其他#elif表达式进行测试。否则,顺序测试下一块。
#ifdef 和 #ifndef 分别表示“如果有定义”和“如果无定义“。两者可用于#else语句中,但#elif不行。
#undef 取消其后那个前面已定义过的宏名定义。
#line 改变_LINE_ 与 _FILE_的内容,它们是在编译程序中预先定义的标识符。
#pragma 为实现时定义的命令,它允许向编译程序传送各种命令。例如,编译程序可能有一种选择,它支持对程序执行的跟踪。可用#pragma语句指定一个跟踪选择。