=DeaD= писал(а):А какая оптимизация имеется в виду - производительности или объема программы?
а любая. Вообще возможности оптимизации ограничены, когда компилятор не знает, как именно будет использован объектный модуль, а линкер не знает, что написано в исходнике, не умеет перелопачивать объектники, и не делает сквозную оптимизацию.
Добавлено спустя 6 минут 45 секунд:Ну вот недавно разбирали код для пика и авр. В пике компилятор нагородил фигню, потому что стэк у пика неадресуемый, и компилятор создал программный стэк для локальных переменных. Вдруг там где-нибудь рекурсия всплывет. Или эта же функция будет использоваться в прерывании в другом модуле.
В авр компилятор создал функции, а их копии инлайнил. Он мог бы просто инлайнить и не оставлять их отдельные копии, но он не знал, вдруг в другом объектнике потребуется указатель на эту функцию. И т.п.
Такой фигни очень много.
Ну а как описать расположенный во флэш массив указателей на строки расположенные в рам (или наоборот, или все во флэш) - можно вообще поэмы писать