返回介绍

10.3.2 #ifdef 命令

发布于 2025-04-11 22:33:06 字数 878 浏览 0 评论 0 收藏 0

#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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。