Проблема инициализации массива в файле заголовка глобальных переменных C ++

Я пишу простую программу с использованием SDL, но у меня возникает странная проблема. Сначала код:

#ifndef GLOBAL_VARIABLES_H
#define GLOBAL_VARIABLES_H

#include <string>
#include <cassert>
#include "SDL.h"
#include "SDL_image.h"
using std::string;

const int SCREEN_WIDTH = 800;
const int SCREEN_HEIGHT = 600;
const int SCREEN_BPP = 32;

const string MAIN_BACKGROUND_FILENAME = "tempBackground.jpg";



SDL_Rect CARD_CLIPS[2];

const int CARD_BACK = 0;
const int CARD_FRONT = 1;

CARD_CLIPS[CARD_BACK].h = 196;
CARD_CLIPS[CARD_BACK].w = 286/2;
CARD_CLIPS[CARD_BACK].x = 286/2;
CARD_CLIPS[CARD_BACK].y = 0;

CARD_CLIPS[CARD_FRONT].h = 196;
CARD_CLIPS[CARD_FRONT].w = 286/2;
CARD_CLIPS[CARD_FRONT].x = 0;
CARD_CLIPS[CARD_FRONT].y = 0;

#endif

Я получаю следующую ошибку:

1>c:\users\--\global variables.h(23): error C2466: cannot allocate an array of constant size 0

1>c:\users\--\global variables.h(23): error C2143: syntax error : missing ';' before '.'

1>c:\users\--\global variables.h(23): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

1>c:\users\--\global variables.h(23): error C2371: 'CARD_CLIPS' : redefinition; different basic types

1>c:\users\--\global variables.h(18) : see declaration of 'CARD_CLIPS'

Повторяйте одну и ту же ошибку каждый раз, когда я пытаюсь инициализировать элемент SDL_Rect.

Обратите внимание, что часть SDL не имеет ничего общего с проблемой . Если я попытаюсь объявить массив int и таким же образом инициализировать его, я получу точно такую ​​же ошибку. Если я помещу что-нибудь из этого в свой main.cpp, он будет работать полностью нормально.

Спасибо за помощь. Сообщите мне, если потребуется дополнительная информация.

РЕДАКТИРОВАТЬ: Обратите внимание, что я не получаю ошибок, кроме случаев, когда я пытаюсь использовать массивы в файле заголовка. Хотя я делаю то, что нужно понимать обычным способом, я также хочу понять, почему с фундаментальной точки зрения я не могу объявлять и инициализировать массивы в таком заголовочном файле.

0
задан Slims 25 July 2011 в 20:33
поделиться