簡體   English   中英

宏擴展中的語法錯誤

[英]Syntax error in Macro expansion

如果定義了unicode,則TEXT(“ x”)宏如何擴展為L“ x”;如果未定義unicode,則如何擴展為“ x”,因為當我嘗試編譯以下代碼時,它說“錯誤#1049:宏參數中的語法錯誤” ”。

#define T("x") "x"

int main()
{
}

在安裝中查找tchar.h標頭。 您將獲得如下內容:

#define __T(x)      L ## x

在Unicode模式下,上面的宏將L和字符串參數粘貼在一起。 在ASCII模式下,沒有要粘貼的前綴,因此它簡單地如下所示:

#define __T(x)      x

請注意,您可以通過另一個宏_T() (帶有單個下划線)間接調用此宏,並將字符串文字作為參數傳遞。

#define T("x") "x"

它定義了一個宏函數T ,如果沒有引號,它將是一個名為x的參數。 您可以嘗試這樣的方法:

#define T(x) #x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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