C语言中extern的使用方法

下午修改的代码编译一直不过,提示重复定义,查找到缘由是对全局变量的使用没有使用extern声明,这里再记录一下extern的使用方法,加深一下记忆吧。函数

extern是一个关键字,它声明了变量或函数(告诉编译器你先别急着报错,这个变量或函数在其余地方定义了,你去其余地方找找,要么在这个文件的后面,要么在引用的其余文件中).net

函数的声明

.c文件提供的接口会在.h中加上声明,但基本不会显示加上extern关键字,由于对于函数来说,没有函数体,自己默认就是个声明,加不加extern可有可无,执行时都会去找到函数定义的地方code

变量的声明

对于变量就不同了,以下:blog

int a;                // 定义一个变量,不管在c仍是h文件中
extern int a;    // 声明一个变量

在h文件中不加上extern关键字,一样是声明了一个(全局)变量,在h文件被屡次引用后,出现重复定义的错误,即便使用#ifdef包裹起来这个.h文件也没法解决。接口

这篇文章写得很清楚,参考: https://blog.csdn.net/csdnwei/article/details/51836182get

相关文章
相关标签/搜索