言って、私は自分自身を読みたくないけどこれは、私は含まれません、ヘッダー、で、私は今マクロの定義を文字列リテラルとして取得する方法は?
#define A B
#define B C
を持って
#define STR(name) # name
は私のように任意のマクロの名前を与えるマクロを定義します文字列であり、
は、すべてのマクロを文字列として完全に展開するマクロを定義しています。従って
cout << STR(A) << EXP_STR(A) << endl;
は、AC
を印刷します。
マクロを使用してA
から"B"
を取得する方法はありますか?
わからない。私はこれがCのトークン拡張がどのように機能するかによって可能ではないと信じています。これは非常に良い質問です。 – fuz
それは素晴らしい質問ですが、私はこれが不可能であることをほとんど確信しています。誰かがそれを知っていることを願っています。 –
可能な複製[Cプリプロセッサでのダブルマクロ置換の回避](http://stackoverflow.com/questions/27533994/avoiding-a-double-macro-subsitution-in-the-c-pre-processor) – this