2015-08-02 :-)
_ [C][define][enum]同じ名前が define と enum にある場合どちらが使われるのか?
答え: define (プリプロセッサの段階で処理されるから)
こういうコードがあるとする。
#include <stdio.h>
enum { HOGE };
#define HOGE 3
int main(int ac, char** av)
{
printf( "%d\n", HOGE );
return 0;
}
3 が印字される。
% gcc define0.c && ./a.exe 3
プリプロセッサ出力を眺めてみればよい。出力のうちほとんどが stdio.h なので用があるのは最後のほうだけ。
% gcc -E define0.c
:
enum { HOGE };
int main(int ac, char** av)
{
printf( "%d\n", 3 ); ←←←←
return 0;
}
[ツッコミを入れる]



