ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Четверг
13 августа
/911007
Топик полностью
fk0 (17.03.2019 18:44, просмотров: 36) в ответ на Ещё одна отрыжка компилятора XC32, ../src/measurement.c:20:1: error: initializer element is not constant - автор: rual
Нет отрыжки, всё по букве стандарта. В языке C переменная типа const лишь означает, что её нельзя менять (может быть положена в сегмент rodata), но нигде не сказано, что компилятор может её знать наперёд в момент компиляции и подставлять значение. Вот в C++ -- может. Поэтому в C распространены подстановки констант через макросы, а в C++ чаще используют const-переменные. Кстати в этом свете enum вроде должен являться таки честной константой, но его float'ом не сделаешь.
[ZX]
Ответить
Ответы