c++关于extern的问题。。

来源:百度知道 编辑:UC知道 时间:2024/07/03 02:27:13
file1.h
int num1=0;
---------
file1.cpp
#include<iostream.h>
#include"file1.h"
void main()
{
cout<<num<<endl;
}
//--请问下主函数的num加不加extern都照样用,那还加extern干嘛使捏?仅仅是方便程序员读程序吗?

基本上你这种写法是有问题的。

就一个文件而言这么写当然可以工作。但如果一个工程中多个.cpp都include这个头文件,就会出现 num1重定义的link错。
解决方法就是在头文件里写 extern int num; 这个extern只是为了说明这是一个“声明”而不是一个定义
这样之后你需要另外在某个.cpp文件里加上对 num的定义, 这个定义当然就不写extern了