我创建了一个简单的test.c
文件:
#include <stdio.h>
int a;
int a = 100;
void printA(void)
{
printf("a is %d\n", a);
}
编译它以生成目标文件:
$ gcc -c test.c
$
没关系!但根据我的理解,变量a
应该重新定义,是不是?
答案 0 :(得分:-1)
一个变量是本地的块,它被定义。块中的代码执行变量超出范围。在你的情况下,首先是全局定义。在第二种情况下,它是在函数内定义的。因此,编译器都是两种情况都不一样。