我在3個文件以下代碼:C++ const的難題
Defines.h
#ifndef Defines_h
extern const unsigned int SIZE;
#endif
Defines.cpp
#include "Defines.h"
const unsigned int SIZE = 10;
Main.cpp的
#include "Defines.h"
int main()
{
int x[SIZE] = {0};
}
在編譯我會在數組定義行錯誤:
錯誤C2057:預期的常量表達式和 C2466:不能分配常量大小的數組0
爲什麼會發生這種情況,畢竟我有SIZE這確實是一個常數?
我不認爲你可以這樣做。數組的大小需要在編譯時知道,但它是鏈接器找到定義。 – chris
你試圖初始化數組的所有元素爲0嗎? –
@BenGlasser,這就是它的樣子。 – chris