在C或C ++中,是否可以声明具有全局范围的const,但是定义是在函数内设置的?
答案 0 :(得分:4)
做一些像(live sample)
这样的事情const int& MyConstValue(int x) {
static const int myConstValue = x;
return myConstValue;
}
int main() {
std::cout << MyConstValue(5) << std::endl; // This is the 1st call and "wins"
std::cout << MyConstValue(8) << std::endl;
return 0;
}
输出
5
5
至少对于c++11,这甚至可以保证线程安全。
答案 1 :(得分:1)
不,那是不可能的。声明必须与定义在同一范围内。否则,它的名称不一样。