extern 关键字

extern 关键字

看完了C++ Primer的第一部分,想写个博客巩固一下学到的知识,因为是第一次写,有很多不足,还望指正。

两个功能

1.extern可以作为链接指示符,即让函数按C的规则编译链接(默认是按C++规则编译链接):格式如:extern "C" int fuc() {};此外复合形式也是可以的:

extern "C" {
	int fuc_1(int a);
	int fuc_2(int b);
}

extern是作用于声明,不是定义,所以不用分配空间。(注意是“C”大写C)
2. 声明函数或全局变量的作用范围,如在test.cpp中定义a_1int a_1=3;而在同一个文件中定义的main.cpp中

#include <iostream>
using namespace std;
extern int a_1;

int main() {
	cout << a_1 << endl;
	return 0;
}

此时main.cpp中a_1的值为3。
此外,由于const对象被设定为仅在文件内有效,当多个文件中出现了同名的const变量时,其实等同于在不同文件中分别定义了独立的变量。如何实现在一个文件中定义const,而在其他多个文件中声明并使用它?
解决的办法是,对于const变量不管是声明还是定义都添加extern关键字,这样只需定义一次就可以了:

//file_1.cc定义并初始化了一个常量,该常量能被其他文件访问
extern const int bufSize=fcn();
//file_1.h
extern const int bufSizel//与file_1.cc中定义的bufSize是同一个

和非const变量的操作方式有所不同。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值