【发布时间】:2011-11-01 19:41:46
【问题描述】:
我想在不同的 cpp 文件中定义字符串数组,但是当我尝试将指针(数组元素)也设为 const 时,定义和声明之间似乎存在一些差异。使用与声明相同的定义似乎可以正常工作,所以我怀疑初始化不是问题。在下面的代码中,我已经注释掉了有问题的 const - 所以它会编译,但如果 const 没有注释,链接器(用 g++ 4.6 和 VS10 测试)将找不到 ext_string_array。
main.cpp:
#include <iostream>
const char* const string_array[2] =
{
"aaa",
"bbb"
};
extern const char* /*const*/ ext_string_array[2]; // <- offending const
int main()
{
std::cout << string_array[0];
std::cout << ext_string_array[0];
}
定义.cpp:
const char* /*const*/ ext_string_array[2] = // <- offending const
{
"aaa",
"bbb"
};
【问题讨论】:
标签: c++ arrays constants definition extern