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; }