任意の型の任意の変数を文字列に変換することは可能ですか?
私は次のように書いた
#define TO_STRING(val) #val
これは変数を文字列に変換する有効な方法ですか?
任意の型の任意の変数を文字列に変換することは可能ですか?
私は次のように書いた
#define TO_STRING(val) #val
これは変数を文字列に変換する有効な方法ですか?
変数名の文字列バージョンを取得します。つまり、に変換a
され"a"
ます。このように使用される when はstringification operator#
と呼ばれます。
例えば:
#define TO_STRING(val) #val
int main(void)
{
const int a = 12;
print("a is %s\n", TO_STRING(a));
return 0;
}
これは印刷されますa is a
。
何が起こると思いますか?
もちろん、変数の値を取得することはできません。これは、プリプロセッサの実行時 (コンパイル時) には利用できないためです。