令牌貼上
令牌貼上允許將兩個巨集引數粘合在一起。例如,front##back
產生 frontback
。一個著名的例子是 Win32 的 <TCHAR.H>
標題。在標準 C 中,可以編寫 L"string"
來宣告一個寬字串。但是,Windows API 只允許通過 #define
ing UNICODE
在寬字串和窄字串之間進行轉換。為了實現字串文字,TCHAR.H
使用它
#ifdef UNICODE
#define TEXT(x) L##x
#endif
每當使用者寫入 TEXT("hello, world")
並定義 UNICODE 時,C 前處理器將 L
和巨集引數連線起來。與 hello, world
連線的 L
給出了 L"hello, world"
。