extern int 和extern const int的区别?

有以下几个文件:
global.cpp:
inttest=5;
global.h
externinttest;
extern.h
include"global.h"
voidtest_fun();
extern.cpp
#include
#include"extern.h"
voidtest_fun()
{
printf("%d\n",test);
}
main.cpp
#include"extern.h"
intmain(intargc,char*argv[])
{
test_fun();
return0;
}
上面的代码运行起来是没有问题的,但是,当我把global.cpp和global.h里面的int改成constint类型之后就会报下面的错误:
errorLNK2001:unresolvedexternalsymbol"intconsttest"
请问constint和int在extern下作用的区别是什么,为什么第二种情况会报错?
更新:
这个问题只会出现在C++里面,在C里面能正确的运行。
茅侃侃
浏览 351回答 2
2回答

HUX布斯

我来做个中文解释的吧~~C++中被const修饰的全局变量默认只在文件内可见global.cpp:constinttest=5;global.hexternconstinttest=5;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript