Не корректнее и не проще.ARV писал(а):имхо, тогда уж корректнее и проще так:BeerLover писал(а):Код: Выделить всё
extern flash char _END_OF_CODE; char flash *EndOfCode; EndOfCode = &_END_OF_CODE;тогда не потребуется заводить отдельную переменную-указатель для получения адреса - __END_OF_CODE уже будет равна этому адресу.Код: Выделить всё
extern flash char *__END_OF_CODE;
В Вашем варианте _END_OF_CODE - это просто указатель на неизвестно куда (так как он там в ассемблере не проинициаизирован и что там для данного компилятора дальше - копия DATA или уже пустая флешка - я не знаю), который "как бы лежит" там же, где в его варианте "лежит" байт _END_OF_CODE;
Написав где-либо просто _END_OF_CODE он получит "значение" этого байта, а Вы - "значение" указателя (один или два байта какого-то, с точки зрения задачи, мусора).
А нужен адрес, поэтому для обеих вариантов всё равно надо писать &_END_OF_CODE;


