• 3888阅读
  • 2回复

[提问]C++或者Qt,怎么样简化这样的程序 [复制链接]

上一主题 下一主题
离线zcgba
 
只看楼主 倒序阅读 楼主  发表于: 2012-10-09
比如说switch(i){case 1:// m_Id 是整型 4个字节m_Id=(m_Data.Bytes[4]<<8)|m_Data.Bytes[3];m_Id=(m_Id<<8)|m_Data.Bytes[2];m_Id=(m_Id<<8)|m_Data.Bytes[1];case 2:// m_Msg是短整型 2个字节m_Msg=(m_Data.Bytes[5]<<8)|(m_Data.Bytes[4]);我想简化程序,利用函数来做这个东西,比如告诉了函数初始字节对于m_Id是m_Data.Bytes[4], m_Msg是m_Data.Bytes[5],然后给出长度比如第一个是 4个,第二个是2个。类似于比如 一个函数 fun(初始值,长度),这样就执行上面case里面的语句,不要每次都要一个一个写,像第一个就要三行,我希望一行解决


希望结果是switch(i){case 1:m_Id = fun(m_Data.Byte[4], 4);case 2:m_Msg = fun (m_Data.Byte[5],2);}
这个函数该怎么写,这个数组有8个字节Data.Byte[8];
离线xlttap

只看该作者 1楼 发表于: 2012-10-10
表代码的, 请分行显示。 唉。。。 看了就头大。
我简单我快乐
离线kh99827765

只看该作者 2楼 发表于: 2012-10-10
int fun(int array[],int len)
{
      int iTemp=*array<<8 | *--array;
      for(int i=0;i<len-2;++i)
            iTemp=iTemp<<8 | *--array;
      return iTemp;
}
快速回复
限100 字节
 
上一个 下一个