マクロ引数に # をつけると文字列リテラルとして展開される。
#define TEST(n) cout << n << endl;
int main() {
TEST(i == 0);
system("pause");
}
これだとエラーになる。
#define TEST(n) cout << #n << endl;
int main() {
TEST(i == 0);
system("pause");
}
//output
i == 0
これだと大丈夫。
マクロ引数を文字列リテラルにして使いたい場合は文字列化演算子 #を使う。
ここまで。