奇思妙想 · 2024年 4月 22日 0

同一个文件可以有相同的宏名称不同的定义吗?

31 次浏览

可以的。宏定义并不保证一定作用至文件末尾,一旦有#undef取消它定义,源代码之后就不会有先前的宏定义。这意味着,可以在代码开始#define NUM 10,不需要NUM的时候用#undef NUM,接着定义#define NUM "hello"是字符串形式,这都是可以的。编译器会小心翼翼地跟着词法解析保存NUM宏定义在当前行所代表的值,丝毫不会被混淆。