2014-01-12 36 views
0
# define a 10 
main() 
{ 
#define a 50 
printf("%d",a); 
} 

輸出即將來臨50.爲什麼會這樣呢?產量不應該達到10?C:#define函數體內部

+1

不,它不應該。 – 2014-01-12 07:03:24

+0

你沒有得到'警告:「爲你的程序」重新定義「? – sujin

+0

在重定義之前最好放一個'#undef a' – BLUEPIXY

回答

0

編譯發生在上下。所以當它進入主函數時,a的值被替換爲50。

這裏的本地優先級高於全球