在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'。你能舉一個你看到的問題的具體例子嗎? –