在C++底漆(第四版)。有一個部分如下const的變量是本地的一個文件,默認
不像其他的變量,除非另有規定,在全局範圍內聲明爲const變量是 地方到定義對象的文件。該變量僅存在於該文件中,並且不能由其他文件訪問 。 我們可以通過指定它的extern使整個程序中的const對象訪問:
// file_1.cc
// defines and initializes a const that is accessible to other files
extern const int bufSize = fcn();
// file_2.cc
extern const int bufSize; // uses bufSize from file_1
// uses bufSize defined in file_1
for (int index = 0; index != bufSize; ++index)
// ...
我嘗試這樣
// file_1.cc
// defines and initializes a const that is accessible to other files
const int bufSize = fcn();
// file_2.cc
extern const int bufSize; // uses bufSize from file_1
// uses bufSize defined in file_1
for (int index = 0; index != bufSize; ++index)
// ...
這也是沒有問題的。所以我的問題是:
常量變量本地文件或這只是一個錯誤?
非常感謝。
「我已經嘗試這樣的[...]這也是沒有問題的。」哪個編譯器?我確實得到了你似乎期待的鏈接錯誤。 – hvd
本書的這一段總是對我提出疑問,也許他們在解釋聯繫指令時應該保存它以備後用。 –