2008年12月16日

[C言語] gccプリプロセッサにおいて,マクロの引数を展開せずに文字列として出力

#マクロ引数名
で,引数に渡された変数名・定数名などがそのまま文字列になる.

例えば, 
#define ANPAN 1
#define SHOKUPAN 2
#define I_LOVE(pan) printf("i love " #pan)
ここで,
I_LOVE(ANPAN);
とかくと,
printf("i love " "ANPAN"); // prints "i love ANPAN"
に展開されます. ログ出力は定数やenumの値よりもその名前を出したかったりするから,そんな時に便利.
# "i love 1" と表示されても困る.
posted by dev-man at 15:20| Comment(0) | TrackBack(0) | C言語 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック