1、代码编译大小超过64KB,导致编译出错,开编译优化能减少20%左右空间,但导致部分功能受到影响
2、代码优化
main函数初始化数组乘操作,正好是2的次方倍数,把乘改成位移操作,能节省7%左右空间,大约4.5KB左右空间
优化前:
for ( i = 0; i < 5; i++ )
{
Filter_setting_time[i] = init_Filter_setting_time[i * 2 + 1] * 256 + init_Filter_setting_time[i * 2];
Power_setting_time[i] = init_power_setting_time[i * 2 + 1] * 256 + init_power_setting_time[i * 2];
}
优化后:
for ( i = 0; i < 5; i++ )
{
Filter_setting_time[i] = (init_Filter_setting_time[(i << 1) + 1]<<8) + init_Filter_setting_time[(i << 1)];
Power_setting_time[i] = (init_power_setting_time[(i << 1) + 1] <<8) + init_power_setting_time[(i << 1)];
}
乘以或除以其他整数,均调用乘除子程序,用移位方法得到的代码比调用乘除法子程序生成的代码效率要高,实际乘除一个整数都可以用移位方法得到结果如:a=a*9;可以改为:a=(a<<3)+a