- ベストアンサー
#defineの初歩的な質問
今c言語を勉強しているのですが #define TEST(tid)tid,#tid これはどういう意味なのでしょうか。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
★使い方? >#define TEST(tid)tid,#tid 本当にこの順序ですか? 私なら #define TEST(tid)#tid,tid と定義して printf( "%s=%d\n", TEST(value) ); として使います。すると printf( "%s=%d\n", "value", value ); となって 『value=123』 とvalue変数の値を表示します。 ・でももっと良い方法としては #define debugValue(n) printf(#n " = %d\n",n) #define debugString(s) printf(#s " = %s\n",s) として debugValue( value ); debugString( string ); とすれば整数値、文字列を変数名付きで表示してくれます。 このようなマクロを記述するときに活用できます。 ・詳しい内容はテキスト本を確認するか、 回答者No.1さんのリンクを参考にして下さい。
その他の回答 (1)
- Werner
- ベストアンサー率53% (395/735)
#define での # は文字列化演算子で引数が文字列として展開されます。 なので、その定義だと TEST(123) は 123,"123" と展開されます。 [参考] C言語のプリプロセスのメモ(Hishidama's C pre-process Memo) http://www.ne.jp/asahi/hishidama/home/tech/c/preproc.html # 文字列化演算子ってあんまり初歩的じゃない気がする。
お礼
回答ありがとうございます。 参考のリンクにいろいろ記載されておりとても役に立ちました。 ありがとうございました。
お礼
ご回答ありがとうございます。 使用例等詳細に記載していただきとても理解できました。 ありがとうございました。