文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
10.3.2 #ifdef 命令
#ifdef 命令是与宏一起配合使用的,使用格式如下:
#ifdef 宏名 语句块 1 #else 语句块 2 #endif
若指定的宏是已经被定义的,则让语句块 1 参与编译;若宏没有被定义,则让语句块 2 参与编译。同样地,其中的#else 部分是可选的,而#endif 为条件编译的结束标记。
下面用一个程序代码来演示#ifdef 命令的使用:
对源代码进行预处理后的内容如下:
int main() { printf("BBB\n"); return 0; }
可见,由于源代码中并未对宏 MAC 进行定义,因此,预处理后的结果,只会让第二个 printf 语句参与编译。
若在源代码中加入对宏 MAC 的定义,例如:
在条件编译之前,通过#define 命令定义了宏 MAC。这时再对源代码进行预处理,内容如下:
int main() { printf("AAA\n"); return 0; }
可见,在定义宏 MAC 之后,第一个 printf 语句参与编译了。
我们在定义宏 MAC 时,只标明了宏名,并没有给出对应的宏值。这是因为在条件编译中只会去检测这个宏是否被定义,并不会真正去使用这个宏值。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论