マクロの大文字小文字 ― 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
最近のコメント