C:#定义内部功能体

C:#定义内部功能体,c,C,产量将达到50%。为什么会这样?输出不应该是10吗?编译从上到下进行。所以当a进入主功能时,它的值被50代替 在这里,局部优先于全局你没有得到程序的“a”重新定义警告吗?最好在重新定义前加上一个#Undefine a,顺便说一下#define不适用于函数体,因为在接受的答案中它是自上而下的。因此,总是把定义放在最上面是一种好的风格 # define a 10 main() { #define a 50 printf("%d",a); }

产量将达到50%。为什么会这样?输出不应该是10吗?

编译从上到下进行。所以当a进入主功能时,它的值被50代替


在这里,局部优先于全局

你没有得到程序的“a”重新定义警告吗?最好在重新定义前加上一个#Undefine a,顺便说一下#define不适用于函数体,因为在接受的答案中它是自上而下的。因此,总是把定义放在最上面是一种好的风格
# define a 10
main()
{
#define a 50
printf("%d",a);
}