原创 关于C++在WINAVR上的优化问题

2006-12-28 22:47 5080 10 10 分类: MCU/ 嵌入式

inline//不加inline将增大空间6个字节 
void UsiObj::CommandExec(void)
{
...............
}

//inline//加inline将增大空间40个字节 
void UsiObj::Exec(void)
{
....................
}

class AdcObj {
private:
  unsigned char AdcNum;//加volatile将增大空间72个字节
  unsigned char AdcCount;//加volatile将增大空间4个字节
  volatile unsigned int AdcSum[8];//不改变
  unsigned int AdcMax[8];//加volatile将增大空间4个字节
  volatile unsigned int AdcMin[8];//不改变
..............................
};

/*-------------------------------------------------------------------
优化示例:
  while (PINB & (1 << SCL));//等待SCL=0主机处理结束
上句将比下句代码多编译16个字节
  while ((unsigned char)tmp = (PINB & (1 << SCL)));//等待SCL=0主机处理结束
--------------------------------------------------------------------*/

/*-------------------------------------------------------------------
优化示例:
          USIDR = TxBuffer[Count];//发送8位数据1个字节
        Count ++;
以上2句将比下句代码多编译26个字节
          USIDR = TxBuffer[Count++];//发送8位数据1个字节
--------------------------------------------------------------------*/

/*-------------------------------------------------------------------
优化示例:
        if (((USIDR << 4) ^ USIDR) >= 0xf0) {//Command高低4位相反
上句将比下几句代码多编译14个字节
//        tmp = USIDR;
//      tmp <<= 4;
//        tmp ^= USIDR;
//        if (tmp >= 0xf0) {//Command高低4位相反
--------------------------------------------------------------------*/

/*-------------------------------------------------------------------
优化示例(此前Status=4):
        Status ++;
上句将比下句代码多编译2个字节
        Status = 5;
--------------------------------------------------------------------*/

/*-------------------------------------------------------------------
优化示例(此前Status=5):
        Status --;
上句将比下句代码多编译6个字节(这个有些不定,至少在2字节以上)
        Status = 4;
--------------------------------------------------------------------*/

/*-------------------------------------------------------------------
优化示例:
  for(i = 31; i >= 13; i --) {
上句将比下句代码多编译2~4个字节
  for(i = 13; i <= 31; i ++) {
--------------------------------------------------------------------*/
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /4 下一条