主要内容:#define和#undef宏细节
一、#define和#undef宏细节
宏生命周期从#define开始到#undef结束
二、#error
编译程序时只要遇到#error就生成输出错误信息,同时停止编译
三、#pragma message("文本信息")
当我们在程序中定义了许多宏来控制源代码时,大家可能会忘记有没有正确 设置这些宏,可以通过下面代码判断
四、宏定义注释
不可行,见程序
# include输出:#define BSC // #define BMC /* #define EMC */ #define _RUN #define ewaece #define sizeof //下面这个编译错误,上面两个可以编译通过 //#define int ? #if 0 #error? 编译程序时只要遇到#error就生成输出错误信息,同时停止编译 #endif int main() { //?? ?BSC mmmm //?? ?BMC daew? EMC? //注释优先于宏定义被预处理,当展开宏之前注释已经处理完毕,这是再展开宏出现//和/**/就会出错 ?? ?# define r 1? //#和define之间可以空格,#define不一定要在最开头 ?? ? ?? ?/* #pragma message("消息文本") ???? * 当我们在程序中定义了许多宏来控制源代码时,大家可能会忘记有没有正确 ?? ? * 设置这些宏,可以通过下面代码判断 ?? ? */ ?? ?#ifdef _RUN ?? ?#pragma message("_RUN macro activated!") ?? ?#endif ?? ? ?? ?#define X 3 ?? ?#define Y X*2 ?? ?#undef X ?? ?#define X 2 ?? ? ?? ?int z = Y; ?? ? ?? ?printf("z = %d\n",z); ?? ?return 0; }
