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