gpt4 book ai didi

c-preprocessor - 预处理器指令 : #elif not defined?

转载 作者:行者123 更新时间:2023-12-04 06:45:13 24 4
gpt4 key购买 nike

是否有预处理器指令检查是否未定义常量。我知道 #ifndef指令,但我也在寻找 #elif not defined指示。是否#elif not defined存在?

这就是我将如何使用它:

#define REGISTER_CUSTOM_CALLBACK_FUNCTION(callbackFunctName) \
#ifndef CUSTOM_CALLBACK_1 \
#define CUSTOM_CALLBACK_1 \
FORWARD_DECLARE_CALLBACK_FUNCTION(callbackFunctName) \
#elif not defined CUSTOM_CALLBACK_2 \
#define CUSTOM_CALLBACK_2 \
FORWARD_DECLARE_CALLBACK_FUNCTION(callbackFunctName) \
#elif not not defined CUSTOM_CALLBACK_3 \
#define CUSTOM_CALLBACK_3 \
FORWARD_DECLARE_CALLBACK_FUNCTION(callbackFunctName) \
#endif

最佳答案

怎么样

#elif !defined(...)

但是您遇到了更大的问题 - 尾随 \排除其他指令 - 或者更确切地说,使它们非法。因此,即使使用有效的语法,您的定义也不会执行您想要的操作。

您需要在条件内移动初始定义。
#ifndef CUSTOM_CALLBACK_1
#define CUSTOM_CALLBACK_1
#define REGISTER_CUSTOM_CALLBACK_FUNCTION(callbackFunctName) \
FORWARD_DECLARE_CALLBACK_FUNCTION(callbackFunctName)
#elif !defined(CUSTOM_CALLBACK_2)
//.....

关于c-preprocessor - 预处理器指令 : #elif not defined?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14808349/

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