打印

参数传递问题

[复制链接]
874|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sinadz|  楼主 | 2012-4-16 18:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
直接上代码:

void ccpCommand(unsigned char *com )
{
  unsigned char a[4]; //用于观察形参的值是否正确
   
  a[0]=com[2];
  a[1]=com[3];
  a[2]=com[4];
  a[3]=com[5];
   
  ccp.ProtectionStatus |= ccpUnlock(&com[2]);

}

函数中调用的ccpUnlock函数定义如下:

unsigned char ccpUnlock( unsigned char *key )
{  
  unsigned long temp;
   
  ccpLastSeed = 0x4f833483;
   
  temp = *(unsigned long *)key;

  if ( temp != ccpLastSeed )  
  {
  return 0;
  }

  return 1;
}

通过观察a数组,发现数组元素的值分别为
a[0]=0x83;
a[1]=0x34;
a[2]=0x83;
a[3]=0x4f;
通过调用ccpUnlock函数,得到的temp应该和ccpLastSeed值相等,都是0x4f833483,返回的应该是1,可是通过观察,
temp的值居然是0,导致函数返回值为0.后面的操作就都错了。

相关帖子

沙发
pkat| | 2012-4-16 18:38 | 只看该作者
temp = *(unsigned long *)key; 改成 *(unsigned char *)key;试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝