3

任意の型の任意の変数を文字列に変換することは可能ですか?

私は次のように書いた

#define TO_STRING(val) #val

これは変数を文字列に変換する有効な方法ですか?

4

3 に答える 3

3

変数名の文字列バージョンを取得します。つまり、に変換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

何が起こると思いますか?

もちろん、変数のを取得することはできません。これは、プリプロセッサの実行時 (コンパイル時) には利用できないためです。

于 2013-06-19T14:26:18.053 に答える