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
ブログ内検索
最新記事
(03/31)
(03/31)
(03/30)
(03/30)
(03/30)
最古記事
(03/23)
(03/24)
(03/25)
(03/26)
(03/27)