我迷糊的是static和extern对全局变量的作用,研究了下,应该是清楚了,顺便就在这总结下吧,不对的地方望指正:
1. int a; 定义一个外部变量(默认外部变量)
extern int a; 只是声明一个外部变量,没有定义
2.static int a; 定义一个内部变量(好像没有专门的声明)
int a;
int a;
int a; //所以,这里重复的是外部变量定义(而不是声明),且这样重复定义没有问题
static int a;
static int a;
static int a; //这里重复的是内部变量的定义,会报错