1

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

我有两个 C 文件,我正在尝试编译为可执行文件。一个文件只包含一个如下声明(简化)。

const char *foo[2] = {"thing1", "thing2"};

第二个 c 文件执行此操作

extern const char *foo[2];
main()
{
 //Code that does stuff with foo
}

编译时出现链接器错误,提示 foo 是未解析的外部符号。我假设编译器正在优化 foo。这里有什么想法吗?

4

1 回答 1

4

你的声明没有错。假设您将显式添加intmain. 我能想到的链接器错误的唯一解释是您忘记向链接器提供所有必需的目标文件。

const试图通过在 C++ 中对象具有内部链接这一事实来解释此问题的答案具有误导性且无关紧要。上述对象foo不是const对象。

于 2012-12-14T22:43:05.440 回答