|
Оптимизацию не по скорости, а по размеру. Размер кода часто получается меньше. Однако стек - это не код, а данные, так что скорее всего это вам не поможет. У Вас очень много глобальных переменных. Посмотрите в листинге, как они размещены. Не забывайте, что переменные размером int, long, float компилятор выравнивает по четным адресам. Поэтому если переменные объявлены как
unsigned i;
unsigned char j;
float k;
unsigned char l;
то это займет 2+1+1(выравнивание)+4+1 = 9 байт, и еще может после этого будет дырка, а если
unsigned i;
unsigned char j;
unsigned char l;
float k;
то 2+1+1+4 = 8 байт, и следующая переменная будет размещена сразу вслед. Это же касается и структур, если компилятор ниже 2.10 и структуры не упакованы.
E-mail: info@telesys.ru