新手看C++ PREMIER疑问:关于extern用法
简单表述,希望大家明白我的意思
书里讲extern是定义(声明)全局变量的用处,意思是在一个文件里面定义了extern int v;在其它.CPP文件里可以调用这个v.那么请问是不是可以用下面这样的程序去理解?但我编译错误。搞不清楚到底怎么用这个extern
这段代码是准备调用另外一个CPP文件里的V的数字并打印到屏幕
#include <iostream>int main(){extern int v;std::cout<<v<<"\n";return 0;}
#include <iostream>int main(){int v=1;return 0;}
#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 只是告诉编译器,这个东西一定存在于程序之中,但多半不在本部分代码里面,然后编译器就会放行,通过编译。
但在链接的时候,该玩意一定要存在,如果不存在,链接就不能通过。