gpt4 book ai didi

c - 预处理器指令中的行是否正确?

转载 作者:行者123 更新时间:2023-11-30 21:12:41 28 4
gpt4 key购买 nike

这两个代码有什么区别:

#define check 0

int main(void)
{
#if check
this is a normal line
#endif
return 0;
}

还有这个:

int main(void)
{
/*
this is a normal line
*/
return 0;
}

它们完全相同吗?

最佳答案

不,它们不一样。

#define check 0

int main(void) {
#if check
this is a normal line
#endif

return 0;
}

该段在编译时完全依赖于预处理的 check 值,当前为 0。由于在预处理 if-endif 之间编译代码的唯一条件是 check0|1 值,因此在运行时,它们将是相同。但是,如果您将 check 更改为 1,它也会编译条件行。

在编译时,第一个段处理#define check 0,而第二个段显然不需要处理,只是忽略注释。

关于c - 预处理器指令中的行是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42117676/

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