gpt4 book ai didi

c++ - #ifdef 带有多个标记,这合法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:05:34 26 4
gpt4 key购买 nike

今天我遇到了一些 C++ 代码,其中包含这样一个 #ifdef 子句:

#ifdef DISABLE_UNTIL OTHER_CODE_IS_READY
foo();
#endif

注意“DISABLE_UNTIL”和“OTHER_CODE_IS_READY”之间的空格。本质上,#ifdef 行中指定了两个标记。

我的问题是,这是合法的 C++ 代码吗? (g++ 编译它没有任何错误,它显然只是忽略了第二个标记)。如果它是合法的,那么第二个 token 应该有什么作用吗?

最佳答案

您发布的语法不合法,预期含义不明确。

根据你希望完成的事情,你能用||或者&&来组合它们吗?
(当然,如果这是别人的代码,我会认为它不合适/无法使用)

#if defined(DISABLE_UNTIL) || defined(OTHER_CODE_IS_READY)
foo();
#endif

关于c++ - #ifdef 带有多个标记,这合法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19321937/

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