忍者ブログ
C言語のマクロについてです。C言語のマクロには落とし穴が多いので、マクロをマスターして引っかからないようにしましょう。そしてC言語の達人になってください。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

#演算子を使った下記のようなコードがあったとします。

#define STR(s) #s
#define MAX_NUM 10

printf("%s\n", STR(MAX_NUM));

この場合、出力結果は、

MAX_NUM

となります。10とはなりません。

もし、MAX_NUMの内容である10と表示させたいならば、
マクロを二段階にする必要があります。

#define STR(s) #s
#define M_STR(s) STR(s)
#define MAX_NUM 10

printf("%s\n", MCR_STR(MAX_NUM));

こうすれば、M_STRの展開時に
MAX_NUMが10となりますから、
出力結果も10となります。
PR
ブログ内検索
バーコード
アーカイブ

Copyright © [ C言語のマクロ ] All rights reserved.
Special Template : 忍者ブログ de テンプレート
Special Thanks : 忍者ブログ
Commercial message : [PR]