C言語なら、俺に聞け! <19>
■ このスレッドは過去ログ倉庫に格納されています
0576567
NGNGint a = 1;
#define a b
#define b a
printf("%d", b);
では、これは?
ちなみに、
#define a b
#define a a
だったらaが再定義されているというエラーが出る。
だから#define b a → #define a a に展開されているとしたら、
aが再定義されているとエラーが出るはず。
もし左側の字句は展開されないのだったら、
上から順に展開されると b→a
で問題無く終わりのはずなんだが。
実際はbが定義されていないと出た。この場合どういう展開したかわかる?
■ このスレッドは過去ログ倉庫に格納されています