主要内容:#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;
}
输出:
