新手看C++ PREMIER疑问:关于extern用法
简单表述,希望大家明白我的意思
书里讲extern是定义(声明)全局变量的用处,意思是在一个文件里面定义了extern int v;在其它.CPP文件里可以调用这个v.那么请问是不是可以用下面这样的程序去理解?但我编译错误。搞不清楚到底怎么用这个extern
这段代码是准备调用另外一个CPP文件里的V的数字并打印到屏幕
- C/C++ code
#include <iostream>int main(){extern int v;std::cout<<v<<"\n";return 0;}
=========================
这段代码是定义V的初值为1
- C/C++ code
#include <iostream>int main(){int v=1;return 0;}
我不知道是我理解错了,还是位置放错了,还是什么?因为C++ PREMEIER书里也没有解释的很清楚。我搞不明白了,求解。
也请将正确的用法,包括代码段放上来,否则还是怕误解。谢谢大家!!
[解决办法]
放到main函数外面。
[解决办法]
第一文件cpp
- C/C++ code
#include "stdafx.h"int v = 1;
[解决办法]
你在xx.cpp里定义v
int v=10;
在xx.h里声明它是extern的
extern int v;
然后在需要使用它的地方包含xx.h
#include "xx.h"
...
...
int main()
{
printf("%d",v);
}
[解决办法]
extern 只是告诉编译器,这个东西一定存在于程序之中,但多半不在本部分代码里面,然后编译器就会放行,通过编译。
但在链接的时候,该玩意一定要存在,如果不存在,链接就不能通过。