マクロの大文字小文字2011年04月29日 12時40分35秒

マクロ関数の引数名が大文字と小文字を区別するかを調べてみた。

全て大文字、最初だけ大文字、全て小文字のファイルを処理してみる。CASE マクロは単に展開されたら無くなる。展開後は、1, 2, 3 があれば区別されている事になる。


sun% cat x.c 
#define CASE( AAA, Aaa, aaa ) AAA, Aaa, aaa

CASE( 1, 2, 3 )
sun%


sun% CC -E x.c 
#1 "x.c"
#3 "x.c"
1 , 2 , 3 
hp% aCC -E x.c 
#line 1 "x.c"


1, 2, 3

ibm% xlC_r -E x.c 
#line 3 "x.c"
1, 2, 3

freebsd% gcc -E x.c
# 1 "x.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "x.c"


1, 2, 3

Sun、IBM、HP そして FreeBSD 共々 1, 2, 3 の出力を出した。マクロの引数名は大文字小文字を区別するらしい。

おまけに Solaris 上での GCC。


sun% g++ -E x.c 
# 1 "x.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "x.c"


1, 2, 3

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2011/04/29/5830745/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。