c++中 extern 是什么含义
来源:互联网 发布:php简历怎么写 编辑:程序博客网 时间:2024/05/05 14:45
有一个函数的定义如下:
extern double tcplib_telnet_interarrival();
请问其中的extern是什么含义?
谢谢!
问题补充:
谢谢vbtraz的回答!衷心感谢你花时间回答基础问题。是不是定义成 extern 后函数在 其他的文件里也可以调用?我记得谭好强的c语言书里好像是这么写的,而且还说:其实函数的默认就是 定义成 extern,但是一般不写。我不知道c++是不是这样呢?另外,让我再看看这个函数的具体位置,可能这里声明成extern是不是有特殊的含义。。。
最佳答案
用例子给你示范 // 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)而可以用它内部定义的变量,(里是.pp不是.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声明,如第二个例子中的第二个.cpp文件可以改成 #include <iostream> using namespace std; // 这里以上两句不能省略,因为,这里extern void print();函数已经不起作用了,在这里调用的而是本文件中定义的void print()函数,其中用到了cout,endl;他们来源于std::<iostream> extern void print(); void print() { cout << "world!" << endl; } int main () { print(); } // 输出结果为world! 还有一个extern "C"就不用说了,用这个可以允许C++程序中调用C的函数!
14
我来评论>>
提问者对于答案的评价:
谢谢!
相关内容
• • • • •
其他回答 共 3 条
表示是外部的, 不在这个编译单元里定义对函数来说没必要写这个. 写不写这个都是extern的, 除非要指定导出格式, 最常见的就是多种语言混合编程经常用到 extern "C" 。 而且也不是说你写了extern就可以在别的什么文件里用它了。 每个编译单元都必须遵守“先声明后使用”的原则
回答者: vbtraz - 高级魔法师 七级 2009-5-11 02:49
外部连接符号通常是在定义接口的时候这样使用的这样的一个声明写在头文件内,供其他文件包含. 这时候extern表示函数的实现部份不在文件内部,在连接的时候统一由连接器处理.编译器通常会假定编译时候找不到实现部份的函数为extern形式.当然,加了extern也可以在该文件内写实现
- c++中 extern 是什么含义
- c++中 extern 是什么含义
- C++中extern “C”含义
- C++中extern “C”含义
- C++中extern “C”含义
- C++中extern “C”含义
- C++中extern “C”含义
- C++中extern "C" 是什么?
- C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- C++中extern “C”含义深层探索
- MTL库和C标准库冲突的解决办法
- static用法小结
- IEEE浮点数表示法
- 忍顾鹊桥归路~~
- UBI文件系统简介
- c++中 extern 是什么含义
- 辞退两个人,心境各有不同
- const,static,extern,volatile的用法
- 我的C++实践(5):类型萃取技术
- extern 用法小结
- 编译midp2.0
- 什么是DOM
- Windows发展史
- 小项目结束后的总结