2

可能重复:
为什么 const 在 C++ 中暗示内部链接,而在 C 中却没有?

如果我有以下情况:

一个.cpp:

const int ArrayOfInts[] = {1, 2, 3, 4, 5};

b.cpp:

extern const int ArrayOfInts[];

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

链接器抱怨 ArrayOfInts 无法从 b.obj 中解析。删除 const 限定符使链接成功。任何想法为什么会失败?

谢谢。

4

1 回答 1

0

当编译器编译b.cpp时,据它所知, 的值ArrayOfInts[0]可以是任何值。所以它不是编译时常量。在 C++ 中,文件范围的常量默认是编译时常量。

于 2012-11-14T12:41:04.157 回答