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)
- extern &&extern c
- extern, extern "C",__stdcall
- extern与extern "C"
- extern 和extern "C"
- extern与extern “C”
- extern 与 extern "C"
- extern 和 extern“C”
- c/c++:extern,extern "C"
- extern“C” ???
- extern "C"
- C extern
- extern"c"
- extern "C"
- extern "C"
- extern "C" {}
- C extern
- extern "C"
- extern c
- android PreferenceScreen使用笔记
- MongoDB实战-电子书
- iOS7 隐藏status bar
- c/s模式下的文字滚动
- sqlplus与shell互相传值
- C++ extern
- 笔试题集锦(1)
- C/C++ 获取当前所有逻辑驱动器的根驱动器路径
- 根据时间转动的圆形progressbar
- NuGet的组成
- java实现栈(数组方式)
- 日照的软件公司
- Copy List with Random Pointer
- Flex 4里的fx、mx以及s命名空间