有这样的代码:
#include <iostream>
extern void fun();
int main(){
fun();
return 0;
}
void fun(){ std::cout << "Hello" << std::endl; }声明之间有没有什么区别:
extern void fun();
void fun();?上面的代码在使用extern和不使用extern关键字时的行为是相同的。
发布于 2011-10-23 22:14:16
默认情况下,函数声明确实有,因此将extern关键字添加到函数声明没有任何区别,这是多余的。
发布于 2011-10-23 22:20:20
这两个语句之间的区别是:
extern void fun();告诉编译器和链接器在这个文件中的代码引用fun( )时查看另一个文件,可能是通过调用fun( );这个结果被称为“声明”。
void fun ( ) {
...
}定义了函数fun (),并且因为它是在这个文件中定义的,所以不需要链接器在其他地方查找该函数。
声明函数extern没有什么坏处:链接器做了正确的事情。
https://stackoverflow.com/questions/7866576
复制相似问题