0

3 つのファイルに次のコードがあります。

定義.h

#ifndef Defines_h
extern const unsigned int SIZE;

#endif

Defines.cpp

#include "Defines.h"

const unsigned int SIZE = 10;

メイン.cpp

#include "Defines.h"

int main()
{
    int x[SIZE] = {0};
}

コンパイルすると、配列定義行で次のようなエラーが発生します。

エラー C2057: 期待される定数式および C2466: 定数サイズ 0 の配列を割り当てることはできません

実際に定数である SIZE を持っているので、なぜこれが起こるのですか?

4

2 に答える 2

2

ヘッダーに移動const unsigned int SIZE = 10;し、extern 行を削除します。単純な const int 値を使用すると、ヘッダー内で直接宣言しても安全で無害です。

于 2012-10-31T06:12:39.270 に答える
0

constは暗黙的に であり、定義には偶数staticが必要です。インクルード ファイルは外部リンケージを探しているため、リンクしません。externSIZEconst unsigned int SIZE

于 2012-10-31T06:15:41.373 に答える