extern 一般来说就是跟编译器讲,全局变量后者函数定义是在别的文件里面,现在所做的只是声名.
例如: extern int c;
extern int fun(void);
这些都只是声名.
这里, extern int fun(void); 可以省略 extern,这样其实还是声名嘛:)
但是extern int c;不能省略,省略以后 int c其实是声名+定义了,这样小心重定义啊.
而在定义的相关文件里面:
如果是要这个项目可见,在extern可有可无,默认就是extern,全局可见. 因为只要是"定义"了就行!