首頁 >後端開發 >C++ >如何在不使用運算子的情況下在 C/C 中連接巨集定義的字串?

如何在不使用運算子的情況下在 C/C 中連接巨集定義的字串?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-07 06:32:18643瀏覽

How Can I Concatenate Macro-Defined Strings in C/C   Without the  Operator?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn