C学习杂记(七)extern声明可省略变量类型

工作三年,看C的书也不少。第一次知道extern可以省略变量类型。

b.c有一个全局变量unsigned int data_length,a.c想要调用它,通常使用:

extern unsigned int data_length;

在声明时可以把外部变量类型去掉:extern data_length;

虽然这样使用合法,但是违背代码规范,可阅读性差,不建议这样使用。

这样的使用方法与编译器也有关

Visual Studio2010会报错。

C学习杂记(七)extern声明可省略变量类型_第1张图片

 

Keil可以编译通过,只是警告。

C学习杂记(七)extern声明可省略变量类型_第2张图片

 

ubuntu同样是可以编译通过,有警告

 

除此之外,extern常用于两个文件之间共享资源的调用,

面试的时候被问到一个非常规问题,变量随便定义在某个地方,能调用它吗

测试出extern在同文件下,可以这样使用

C学习杂记(七)extern声明可省略变量类型_第3张图片

同样的,不符合代码规范,不建议这样使用

你可能感兴趣的:(C)