ошибка: элемент инициализатора не вычисляется во время загрузки

Я продолжаю получать ошибку компилятора: элемент инициализатора не вычисляется во время загрузки.

Я использую компилятор MPLAB C30. В другом коде эта ошибка была решена путем помещения 10 в скобки объявления массива, но по какой-то причине здесь это не работает.

У кого-нибудь есть предложения? Спасибо!

KEYDEF KDEF_scrn00_Home[10] =
{
//Value, Action,               Link
    {0, KACT_Power,  0 } // key # 
   ,{0, KACT_GotoScreen, (void *) &SCRN_scrn01_Zone1} // key # 1
   ,{0, KACT_None,  0 } // key # 2
   ,{0, KACT_None,  0 } // key # 3
   ,{0, KACT_GotoScreen, (void *) &SCRN_scrn06_mode} // key # 4
   ,{0, KACT_GotoScreen, (void *) &SCRN_scrn04_ice} // key # 5
   ,{0, KACT_None,  0 } // key # 6
   ,{0, KACT_GotoScreen, (void *) &SCRN_scrn08_alarm} // key # 7
   ,{0, KACT_None,  0 } // key # 8
   ,{0, KACT_None,  0 } // key # 9
};

person Cory    schedule 20.09.2011    source источник
comment
На какую строку он жалуется? Ваш код выглядит нормально, если все эти символы доступны.   -  person Carl Norum    schedule 21.09.2011
comment
Я не вижу в этом никакой проблемы, не было бы приведения к void*. Какого типа ваша ссылка? Если это void*, вам не нужно разыгрывать. Если он другого типа и ваши переменные другого типа, такой дизайн сомнительный.   -  person Jens Gustedt    schedule 21.09.2011
comment
Вам нужно показать объявления идентификаторов KACT_* и SCRN_*.   -  person caf    schedule 21.09.2011


Ответы (1)


Похоже, ваш компилятор не использует режим C99. Этот тип инициализации должен работать с включенным режимом C99.

person abettino    schedule 20.09.2011