c++ 中extern的基本解释说明(VC代码)
2013-01-12 15:35
260 查看
它的作用就是告诉编译器这个变量是在其他文件中定义的(是外援),要是在本文件中
看到它的名字千万别奇怪。
编译器是相信同伙的,所以在编译的时候要是看到a变量时会认为它是存在,不会报错。只有在
链接的时候链接器才会去其它obj文件中寻找a变量的定义(地址),找到则顺利链接,否则报错。
因为编译器只需要知道extern所声明变量的名字就可以了,所以extern int a可以写成 extern a(即省略变量类型)。
并不是所有的变量都能用extern声明,只有全局变量并且没有被static 声明的变量才能声明为extern.而且还要注意extern这个玩意千万不要放在.h文件里,这样你感觉程序没有错误但是就是出现链接错误,extern一定放在cpp文件中,
h文件只负责声明,他其他什么工作也不做,不要赋予h文件太多的功能,这样你都不知道是怎样出的错。
测试过程如下:
在vc++中建立俩个类 test1 和 circle,在test1.h 中定义变量ok
在circle的cpp中声明extern ok变量,他们分别如下:
test1.h
#include "test1.h" test1::test1() { } test1::~test1() { }
circle.h
#include "circle.h" #include "iostream.h" extern ok; circle::circle() { } circle::~circle() { } void circle::fun() { cout<<ok<<endl; } int main() { circle* ci=new circle(); ci->fun(); cout<<"ÎÒϲ»¶C++/n"; return 0; }
相关文章推荐
- c++ 中extern的基本解释说明(VC代码)
- VC/C/C++ 代码6
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- 【C++码农】WMI技术介绍和应用——VC开发WMI应用的基本步骤
- FLASH的基本代码解释
- 代码高处走 从VC6到VC9移植代码问题说明
- 一段用于监测C++内存越界的代码 , VC++,GCC编译测试通过
- Flash运行时错误代码解释说明
- C++中new和delete的实质--代码解释
- AS的基本代码解释
- VC/C/C++ 代码17
- C/C++ 结构体 字节对齐原则详细举例解释 及sizeof的基本用法
- C++卷积神经网络实例:tiny_cnn代码具体解释(6)——average_pooling_layer层结构类分析
- 数据结构之队列的基本操作入队出队初始化删除-c++代码实现及运行实例结果
- C++基本名词解释
- 深度学习 8. MatConvNet 相关函数解释说明,MatConvNet 代码理解(四)cnn_train.m 的注释
- C++控制台操作(基本操作的代码)
- C++语言数据结构 串的基本操作实例代码
- 这么详细的分类 VC/C++源代码网站你见过没有? VC/C++中的每一个方法,每一个操作,每一个头文件,每一个函数,每一个类.每一个属性,每一个事件都有相应的范例代码
- Vsc++中代码自动填补功能说明