gpt4 book ai didi

c - #ifdef 在#ifdef 中

转载 作者:太空宇宙 更新时间:2023-11-04 00:57:57 25 4
gpt4 key购买 nike

在下面的 C 代码摘录中,SUPPORT_MULTI_DNS_SERVER 是否仅在定义 ProductName 时执行?

#ifdef <ProductName>
//do things here
#ifdef SUPPORT_MULTI_DNS_SERVER
//do things here
#endif
//do things here
#endif

编辑:SWE780 更改为产品名称。

最佳答案

预处理器条件将嵌套。例如,与:

#ifdef XYZZY
int a;
#ifdef PLUGH
int b;
#endif
int c;
#endif

b 变量只有在同时 XYZZYPLUGH 被定义时才会存在。 ac 变量仅取决于 XYZZY

来自 C11 标准,6.10.1 条件包含/6 部分:

Each directive’s condition is checked in order. If it evaluates to false (zero), the group that it controls is skipped: directives are processed only through the name that determines the directive in order to keep track of the level of nested conditionals.

这个“组”是整个部分,包括所有子组。在上面给出的示例中,XYZZY 组是#ifdef XYZZY 和相应的#endif 之间的所有内容

关于c - #ifdef 在#ifdef 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52360220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com