|
| |
|
|
| |
| 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);
}
|
|
|
|