3
是否有預處理程序指令檢查是否未定義常量。我知道#ifndef
指令,但我也在尋找#elif not defined
指令。 #elif not defined
是否存在?預處理器指令:#elif未定義?
這是我會怎麼使用它:
#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
爲什麼不使用ifndef? – Dariusz 2013-02-11 08:30:14
'#elif未定義CUSTOM_CALLBACK_3'未定義? – JustMaximumPower 2013-02-11 08:30:26
你想做什麼?您不能定義包含其他預處理器指令的宏。你不能使'#define'或'#if'或'#elif'成爲宏的一部分。您的宏必須重新設計,以確保它沒有內部「分支」。所有宏觀分支都必須在「外部」完成。它不能被「嵌入」到宏中。 – AnT 2013-02-11 08:33:47