C/C 中基於巨集的字串連線
無法使用## 直接連接C/C 中的巨集定義字串預處理器運算符,主要用於令牌串聯。但是,存在一種解決方法可以實現此目的。
請考慮以下範例:
#define STR1 "s" #define STR2 "1" #define STR3 STR1 STR2
此程式碼定義了三個巨集:STR1 帶有字串“s”,STR2 帶有“1”, STR3 作為STR1 和STR2 的串聯。 STR3 的擴展結果為:
#define STR3 "s" "1"
但是,在 C 語言中,兩個由空格分隔的字串並置(如“s”“1”)相當於單一字串“s1” .
因此,下面的程式碼直接連接STR1和STR2,不需要##運算子:
#define STR3 STR1 STR2
這擴充為:
#define STR3 "s1"
以上是如何在不使用運算子的情況下在 C/C 中連接巨集定義的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!