21IC 电子工程师笔记系统,   “我”的笔记


载入中...

最新日志

载入中...

最近的评论

载入中...

连接






关于C++在WINAVR上的优化问题
雁塔菜农 发表于 2006-11-9 19:17:00

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 ++) {
--------------------------------------------------------------------*/


Re:关于C++在WINAVR上的优化问题
访客Jne5Hu(游客)发表评论于2008-4-27 21:00:00

访客Jne5Hu(游客)高手
个人主页 | 引用 | 返回 | 删除 | 回复

发表评论:
载入中...



公告

载入中...

专题

载入中...

留言

载入中...

统计

载入中...

 

 

 

站长个人入口