C++ extern

来源:互联网 发布:javascript弹出输入框 编辑:程序博客网 时间:2024/06/03 03:50

用例子给你示范
// 1.cpp int x = 10;
 // 2.cpp 注意没有包含1.cpp
#include <iostream> using namespace std;
 extern int x;int main ()
{

cout << x << endl; } //则输出10
两个文件同在一个项目(project)中,你不包含某个文件(cpp)而可以用它内部定义的变量,(这里是.cpp不是.h, 因为在.h中定义的

数据不能在.cpp中用除非这个.cpp包含这个.h文件)

// 1.h #include <iostream> void print() { std::cout << "hello!" << std::endl; }
// 2.cpp #include <iostream> using namespace std; // 以上

两句在这个例子中可以不要
 extern void print(); int main () { print(); }
 就会出错因为1.h中的void print();在不包含它的文件中是不可调

用的,即使在声明了extern 也于事无补,
如果你将这个例子中的1.h名字换成1.cpp就对了!
从这些可以看出来,extern在这里起的作用

是告诉编译器,你这个print()已经在某个.cpp中已经定义了,这里只不过是声明一下有这个东西,然后拿来用一下。
定义只能出现一次,声明却可出现多次,也就是说extern声明可在多个文件中用(包括.h)

原创粉丝点击