ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
15 мая
1586958 Топик полностью
AlexBi (Сегодня, 14:32, просмотров: 835)
Как правильно создавать константы, вычисляемые на этапе линковки? Можно ли это сделать без использования внешних инструментов, только силами компилятора и линкера из Keil-а для ARM? 

Например, такой код

const unsigned v1=0;
const unsigned v2= ((unsigned)(&v1))/2;

В режиме Си такое не компилируется, выдается ошибка "initializer element is not a compile-time constant" В режиме С++ компилируется без ошибок, но на выходе ни чего нет, значение нулевое.


Такой код адекватно компилируется и в Си и в С++, но хочется получить результат вычисления, а не просто адрес.

const unsigned v1=0; 
const unsigned v2= ((unsigned)(&v1));