ホームページ > バックエンド開発 > C++ > C/C マクロで文字列リテラルを直接連結するにはどうすればよいですか?

C/C マクロで文字列リテラルを直接連結するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-20 14:50:16
オリジナル
905 人が閲覧しました

How Can I Directly Concatenate String Literals in C/C   Macros?

C/C マクロでの文字列の連結

文字列リテラルを使用してマクロを定義する場合、多くの場合、それらを連結して新しい文字列を形成する必要があります。例を考えてみましょう:

#define STR1      "s"
#define STR2      "1"
#define STR3      STR1 ## STR2
ログイン後にコピー

疑問が生じます:単一のマクロ定義を使用して STR1 と STR2 を直接連結して "s1" を取得することは可能ですか?

標準文字列連結

伝統的に、マクロ内の文字列の連結は文字列化演算子 (#) を利用して実現されます。ただし、この方法では中間マクロ関数に引数を渡す必要があります。

#define CONCAT(x, y) x ## y
#define STR3 CONCAT(STR1, STR2)
ログイン後にコピー

文字列の簡素化された連結

文字列リテラルを連結する特定のケースについては、簡略化されたアプローチが存在します。文字列化演算子を省略すると、文字列を直接連結できます:

#define STR3 STR1 STR2
ログイン後にコピー

これは次のように展開されます:

#define STR3 "s" "1"
ログイン後にコピー

C 言語では、文字列をスペースと並べて (「s」のように) "1") は、単一の文字列 "s1" を持つことと同等です。したがって、この簡素化された方法は、C/C マクロで文字列リテラルを連結する直接的な方法を提供します。

以上がC/C マクロで文字列リテラルを直接連結するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート