2015-01-03 3 views
1

Я пытался создать простую структуру для хранения персонажей.Ошибка: в этом объявлении нет класса хранения или спецификатора типа (я делаю простую структуру.)

Это то, что я придумал:

struct cStats 
{ 
    int nStrength; 
    int nIntelligence; 
    int nMedical; 
    int nSpeech; 
    int nAim; 
}; 

cStats mainchar; 
mainchar.nStrength = 10; 
mainchar.nIntelligence = 10; 
mainchar.nMedical = 10; 
mainchar.nSpeech = 10; 
mainchar.nAim = 10; 

mainchar. часть подчеркнута красным цветом в визуальной студии, и когда я наводил на нее курсор, это показывает следующее: Ошибка: это объявление не имеет типа хранения или спецификатора типа

Любое объяснение того, почему это делается, и что я должен делать, чтобы исправить это было бы признательно.

ответ

1

Если это C, вы должны пометить свой вопрос как таковой. cStats - это тег структуры, а не спецификатор типа. Вы должны объявить mainchar как:

struct cStats mainchar; 

Если вы хотите использовать cStats как спецификатор типа вы бы определить его как:

typedef struct 
{ 
    int nStrength; 
    int nIntelligence; 
    int nMedical; 
    int nSpeech; 
    int nAim; 
} cStats; 

Если вы сделали, что ваш cStats mainchar будет работать.

Обратите внимание, что в C, char и символ означают «буквенно-цифровой символ ASCII», а не «символ в игре или игре». Я предлагаю придумать другой термин для вашей программы.

Еще один совет; не префикс своих имен своим типом данных; как nStrength для целых Сила. Компилятор скажет вам, если вы ошиблись в своих типах данных, и если вам когда-либо понадобится изменить тип, например, float nStrength для обработки дробных сильных сторон, изменение имени будет большой проблемой.

Смежные вопросы