这是一个语法问题!
比如我有如下代码:
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
// 这是第6行
printf("%d\n", a);
return EXIT_SUCCESS;
}
static int a = 10;
编译会报错:a未定义
如果第6行写
extern int a;
编译还是会报错:static declaration of 'a' follows non-static declaration
问题是:第6行写什么,才会把最下面的变量a的作用域提到 printf("%d", a);
处?
把最后一行的关于
a
的定义放到main之前不会报错了,请问为何不这样做呢?