簡體   English   中英

C ++中的宏可以定義宏嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM