gooブログはじめました!

写真付きで日記や趣味を書くならgooブログ

User c++プログラムで #define AAA "hello" #define BBB "world" #define CCC AAA BBBということは出来ますか?

2023-05-23 08:24:00 | 日記

#defineディレクティブでは、テキストの置換が行われます。そのため、マクロCCCを定義する際にAAABBBを連結したい場合、マクロ展開のタイミングで正しい結果を得るためには、さらに追加のテキストマクロを使用する必要があります。

以下に例を示します。

#include <iostream>
using namespace std;

#define AAA "hello"
#define BBB "world"
#define CONCATENATE_STR(str1, str2) (str1##str2)
#define CCC CONCATENATE_STR(AAA, BBB)

int main() {
    cout << CCC << endl;  // "helloworld" と出力される
    return 0;
}



コメントを投稿