首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >extern数组不链接

extern数组不链接
EN

Stack Overflow用户
提问于 2012-11-14 12:35:19
回答 1查看 3.5K关注 0票数 2

可能重复: Why does const imply internal linkage in C++, when it doesn’t in C?

如果我有以下情况:

a.cpp:

代码语言:javascript
复制
const int ArrayOfInts[] = {1, 2, 3, 4, 5};

b.cpp:

代码语言:javascript
复制
extern const int ArrayOfInts[];

void SomeFunc()
{
    int a = ArrayOfInts[0];
}

链接器抱怨ArrayOfInts无法从b.obj中得到解决。删除const限定符将使链接成功。知道为什么会失败吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-14 12:41:04

当编译器编译b.cpp时,尽管它知道,ArrayOfInts[0]的值可以是任何东西。所以它不是编译时间常数。在C++中,文件作用域中的常量默认为编译时常量.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13378935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档