今天我在优化代码的时候。出现了问题。如下:
//----------------PERIPH.C---------------------
/* 读寄存器,参数 地址 返回内容*/
unsigned int ReadCMD(unsigned char addr)
{
unsigned int temp;
XCS_L();
WriteByte(0x03);
WriteByte(addr);
temp = ReadByte();
temp <<= 8;
temp += ReadByte();
XCS_H();
return temp;
}
//------------------MAIN.C-----------------
#define ReadHDAT0() ReadCMD(SPI_HDAT0)
hdat0=ReadHDAT0();//读MP3文件帧头信息
假如我不用o3优化项。我读出的数据是正确的。但用的话,每次读出来的数据都错。而且都不相同(数值和正确的数值相差不大,可以说在正确数值下波动)。
然后我就查了对应o3的资料,书本有如下一段:
“-o3:表示最大可能优化级别。各种循环优化都执行了,并且各种文件级性质也用来改善性能。”
请问:
1、假如我要选用o3优化的话,我该怎样做才不出错?
2、o3的说明中,“各种循环优化都执行了”,各种循环优化,具体怎么优化?在什么条件下?优化了些
关于编译优化选项o3的问题
最新推荐文章于 2022-05-28 01:13:44 发布