int WJ1608Card_ReadNum(BYTE* byCardNum)
{
int st;
static BYTE byReadNum[8] = {0};
/**********************************读出卡号*********************************/
st=SLE4442_ReadChar(48,8,byReadNum);
if(st==0)
{
memcpy(byCardNum,byReadNum, 8);
return 0 ;
}
else return 1;
}
/**********************************读出卡型*********************************/
int WJ1608Card_ReadCard(int* iCard)
{
int st;
static BYTE byReadCard[2] = {0}; st=SLE4442_ReadChar(33,1,byReadCard);
if(st==0)
{
memcpy(iCard,byReadCard, 2);
return 0 ;
}
else return 1;
}
这是两个函数,但我现在想把这两个函数合为int WJ1608Card_ReadNum(int* iCard,BYTE* byCardNum)
return 0时,可以得到iCard,byCardNum
{
int st;
static BYTE byReadNum[8] = {0};
/**********************************读出卡号*********************************/
st=SLE4442_ReadChar(48,8,byReadNum);
if(st==0)
{
memcpy(byCardNum,byReadNum, 8);
return 0 ;
}
else return 1;
}
/**********************************读出卡型*********************************/
int WJ1608Card_ReadCard(int* iCard)
{
int st;
static BYTE byReadCard[2] = {0}; st=SLE4442_ReadChar(33,1,byReadCard);
if(st==0)
{
memcpy(iCard,byReadCard, 2);
return 0 ;
}
else return 1;
}
这是两个函数,但我现在想把这两个函数合为int WJ1608Card_ReadNum(int* iCard,BYTE* byCardNum)
return 0时,可以得到iCard,byCardNum
{
BYTE byReadNum[8];
int st = SLE4442_ReadChar(48,8,byReadNum);
if (st != 0)
return 1;
memcpy(byCardNum,byReadNum, 8);
BYTE byReadCard[2];
st=SLE4442_ReadChar(33,1,byReadCard);
if (st == 0)
memcpy(iCard,byReadCard, 2);
return st;
}
读出来的时候,byReadCard里是什么内容?
byReadCard里是08
st=SLE4442_ReadChar(33,1,byReadCard);
if (st == 0)
memcpy(iCard,byReadCard, 2); 一般来说,int比2个BYTE要长,int上四个字节(32位系统),因此memcpy(iCard,byReadCard, 2);可能会出错
这时,可以考虑用*iCard = ....的方式,把byReadCard转换成整数
static BYTE byReadCard[2] = {0};
楼上,谢谢了