C语言中extern的使用方法

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

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

函数的声明

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

变量的声明

对于变量就不一样了,如下:

int a;                // 定义一个变量,无论在c还是h文件中
extern int a;    // 声明一个变量

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

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

转载于:https://my.oschina.net/u/2561528/blog/1808288

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值