[英]Can macros in C++ define macros?
我想知道是否有可能在C ++中定義一個宏,該宏定義另一個可以在以后的代碼中使用的宏。 這可能嗎,還是g ++所使用的預處理器對此是否過於局限?
不可以,您不能在另一個宏的擴展中定義宏。
不,您不能將宏定義為宏。
您可以執行類似的操作,雖然它並不是您想要的,但可能會有所幫助。
#ifdef ENABLE_MACRO_1
#define PRINT_MACRO(varName) \
std::cout<<varName<<std::endl;
#else
#define PRINT_MACRO(varName) \
//do nothing
#endif
因此,您可以根據定義的另一個前提條件定義宏。
預處理器僅對源代碼進行一次傳遞,因此這是不可能的。 但是,您可以使用外部工具在編譯之前執行一些預處理,例如m4 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.