Здравствуйте.
Возникла следующая проблема.
Некий проект делался на компиляторе CVAVR версии 1.24.7e. В коде программы использовался указатель на EEPROM, объявленный следующим образом:
unsigned long int eeprom *pEprom.
Обращение к этому указателю происходило, например, так:
pEprom= x, где x — переменная или константа. Ошибок компилятор не находил.
При компиляции этого же проекта в CVAVR версии 1.25.3 выдаётся стандартное Си-шное сообщение об ошибке преобразования типов (например: «a value of type ‘unsigned int’ can’t be assigned to an entry of type ‘eeprom unsigned long’»).
Приходится перед каждой операцией присвоения адреса указателю выполнять преобразование типов: (unsigned long int eeprom *)x, и, наоборот, перед присвоением значения адреса указателя значению переменной — выполнять соответствующее преобразование. Эти действия сильно загромождают исходный код программы, так как обращений к указателю в программе несколько десятков.
Можно ли обойти это ограничение в данной версии?
Спасибо, всего хорошего.