Я пишу эмулятор и решил управлять эмуляцией ввода / вывода в структуре:
struct callbacks
{
short LastFrequency = 9000;
int *MMIO_RANGE1;
short Cycle_LN = 65535 / LastFrequency;
const char *STATUS_FLAGS[] =
{
"ACK",
"NO_VIB",
"DATA",
"BYTEPACK",
"WORDPACK"};
}
Этот код выше выглядит хорошо для меня и, кажется, подчиняется всем правилам … но я получаю сообщение об ошибке, как указано в заголовке выше. Я искал вокруг, и люди говорят, что ошибка означает разные вещи … но что это?
Проблема направлена на «LastFrequency».
Две вещи: добавить 5
и ;
Также: обязательно скомпилируйте с -std=c++11
(или же -std=c++0x
для более старых версий g ++ или эквивалентных опций для выбранного вами компилятора), потому что инициализаторы в классе — особенность C ++ 11.
БОЛЬШОЕ ПРЕДУПРЕЖДЕНИЕ: этот код НЕ поддерживается gcc 4.6 и требует gcc> = 4.7.3
struct callbacks
{
short LastFrequency = 9000;
int *MMIO_RANGE1;
short Cycle_LN = 65535 / LastFrequency;
const char *STATUS_FLAGS[5] = // <-- 5 here
{
"ACK",
"NO_VIB",
"DATA",
"BYTEPACK",
"WORDPACK"};
}; // <-- ; here
int main()
{
}