在C或C++中,是否可以用全局作用域声明一个常量,但是定义是在函数内部设置的?声明一个全局作用域变量const在C++中
0
A
回答
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这甚至保证是线程安全的。
+0
这将被放置在全局范围内?并且在被调用至少一次之前不会被初始化? – user3353209
+0
@ user3353209 _'这将被放置在全球范围内? ......确实! –
+0
@ user3353209请检查我的编辑内容... –
1
不,这是不可能的。声明必须与定义处于相同的范围。否则,它不是同一个名字。
相关问题
- 1. 声明一个全局变量用作本地变量
- 2. 在全局头文件中声明一个全局变量?
- 3. 声明一个全局的Request.ServerVariable变量
- 4. 如何在Objective-C中声明一个全局变量?
- 5. CONST变量声明
- 6. 声明全局变量
- 7. 全局变量声明
- 8. 在Arduino中声明全局变量
- 9. 在perl中声明全局变量
- 10. 在ActionScript中声明全局变量?
- 11. 在Matlab中声明全局变量
- 12. 在coffescript中声明全局变量
- 13. 在yacc中声明全局变量
- 14. 全局变量在android中的声明
- 15. 在Java中声明全局变量
- 16. 在全局变量中声明查询
- 17. 在Python中声明全局变量类
- 18. 在Swift中声明全局变量
- 19. 在vb中声明全局变量
- 20. 声明作为全局变量在类中创建的变量
- 21. 哪一个更好,在类中声明全局变量或在Java类中声明局部变量?
- 22. 全局变量作用域
- 23. 在python中声明一个函数中的全局变量
- 24. 在JavaScript中声明一个临时变量到一个全局变量responseText
- 25. 声明const全局变量时需要静态吗?
- 26. 在scala中声明一个全局变量
- 27. 我如何在AngularJs中声明一个全局变量2
- 28. 如何在php中声明一个全局变量?
- 29. 如何在actionscript中声明一个全局变量
- 30. 在MATLAB中声明一个全局变量
为什么你需要这个? –
我在异步环境中进行编程,如果我没有将它设置在一个特定的位置,变量会提取错误的定义。 – user3353209
这并不特别清楚。如果在全局范围内有'const int x = 3;',无论何时/无论何时引用它,它都将是'3'。你能举一个你看到的问题的具体例子吗? –