C/C++中extern关键字详解
一个很容易忽略的关键字
基本解释
extern可以放在变量或者函数前。表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找定义。此外exrtern也可以用来进行链接指定。
1. 用作外部变量的声明与使用
如果在多个文件中使用外部变量,只需在一个文件中包含该变量的定义(单定义规则),但在使用该变量的其他所有文件中,都必须使用extern声明它:
//file01.cpp
extern int cat = 20; //定一个flag变量并初始化
int dog = 22;
int fleas;
//file02.cpp
//使用file01的cat和dog
extern int cat;
extern int dog;
在上述例子中,因为file02并没有声明fleas变量,因此无法使用,但是声明了cat和dog,因此可以使用这两个变量。由此可见,关键字extern并非必不可少的,因为即使省略它,效果也相同。
2、函数的声明
函数的声明中extern关键字是可有可无的,因为函数本身不加修饰的话就是extern。但是引用的时候一样需要声明。
3、可以多次声明,但是定义只能一次
extern int i; //声明,不是定义
int i; //声明,也是定义
本文详细介绍了C/C++中的extern关键字,用于声明变量或函数在其他文件中定义。extern可以用于多个文件间共享变量,函数声明默认即为extern。文章通过示例解释了如何正确使用extern声明外部变量,并指出extern并非总是必要,但能提高代码的可读性。同时,extern关键字的使用遵循单定义规则,变量和函数只能被定义一次。
358

被折叠的 条评论
为什么被折叠?



