Mpeg4 IP Camera,网络摄像机,DVR方案及模块,NGN,VoIP企业方案,IP-PBX,OEM,ODM服务,无线产品,SIP终端产品,Zigbee产品
  日文网站
网站地图 客户服务 联系我们
 
 服务内容
 服务热线
 知识库
 
NGN产品
图像产品
软件开发X问
 演示中心

 

如何让您的IP Camera
快速抢占市场

如何选择适合您的VoIP
解决方案
产品应用成功案例
产品演示中心
软件开发X问
 
  您当前位置: 客户服务 >> 知识库 >> 软件开发X问
软件开发X问  
     
 
3.6 ITG共用函数

之前提到要做ITG的共用函数,以下是几个共用函数的例子,可以看出,它们都是很小的,只完成一个简单的功能。在做共用函数时,特别要注意的是,性能即速度问题。一定要做到高速,尽量简练,有时可以没有可读性,或者可读性很差也是可能的。
a)例子1:表格的比较
 INT cmpb(_tbl_a,_tbl_b,_cnt)
  RBYTE *_tbl_a;
  RBYTE *_tbl_b;
  RWORD _cnt;
  {
  RWORD _i;
  for(_i=0;_i<_cnt;_i++)
   {
   if(*_tbl_a++ != *_tbl_b++)
    return(_i);     /* 比较不同时返回其位置 */
   }
  return(-1);       /* 比较相同时返回 -1 */
  }
b)例子2:从一个表中寻找一个字节
 INT findb(_tbl,_key,_cnt)
  RBYTE *_tbl;
  RBYTE _key;
  RWORD _cnt;
  {
  RWORD _i;
  for(_i=0;_i<_cnt;_i++)
   {
   if(*_tbl++ == _key)
   return(_i);      /* 找到时返回其位置 */
   }
  return(-1);       /* 没有找到时返回 -1 */
  }

以下是又一个例子,你能看出这段程序是何功能么???
c)例子3:XXXXX
 BYTE rorb(_target,_count)
  RBYTE _target;
  RWORD _count;
  {
  RBYTE _i;
  RWORD _mod;
  _mod=(_count & 7);
  _i=_target;
  _i >>= _mod;
  _target<<=(8-_mod);
  _target|=_i;
  return(_target);
  }