在c ++中声明一个全局范围变量const

时间:2014-03-30 19:23:20

标签: c++ c scope global

在C或C ++中,是否可以声明具有全局范围的const,但是定义是在函数内设置的?

2 个答案:

答案 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

至少对于,这甚至可以保证线程安全。

答案 1 :(得分:1)

不,那是不可能的。声明必须与定义在同一范围内。否则,它的名称不一样。