工作三年,看C的书也不少。第一次知道extern可以省略变量类型。
b.c有一个全局变量unsigned int data_length,a.c想要调用它,通常使用:
extern unsigned int data_length;
在声明时可以把外部变量类型去掉:extern data_length;
虽然这样使用合法,但是违背代码规范,可阅读性差,不建议这样使用。
这样的使用方法与编译器也有关
Visual Studio2010会报错。
Keil可以编译通过,只是警告。
ubuntu同样是可以编译通过,有警告
除此之外,extern常用于两个文件之间共享资源的调用,
面试的时候被问到一个非常规问题,变量随便定义在某个地方,能调用它吗
测试出extern在同文件下,可以这样使用
同样的,不符合代码规范,不建议这样使用