请大伙帮我看看这个程序,为什么可以编译通过!
最近在改一个手持POS机的程序,因为也是第一次接触,所以没什么经验!
程序是用C写的,GNU C编译器编译的。
我替换了其中一个头文件,然后出现了很多编译错误,于是就一个个的解决,其中遇到了这样一个问题
#define init_RC530
.....//其他内容
#ifdef init_RC530
void init_RC530_IF(int No)
{
char TempStatus;
if (No==-1)return;
set_console_english();
if( InitMC530(0) != MI_OK)
{
clear_console();
move_cursor(0,0);
printf("RF Card IF error");
return;
}
// ResetAllCard(); // reset all card in the field
// clear_console();
{
char * code_key[] = {"\xff\xff\xff\xff\xff\xff","\xff\xff\xff\xff\xff\xff"};
short sector;
for (sector = 0; sector < 16; sector++)
{
if( Mf500KeyWriteToEeprom(PICC_AUTHENT1A,sector,code_key[No]) == MI_OK)
{
}
else
{
puts("Err");
break;
}
if( Mf500KeyWriteToEeprom(PICC_AUTHENT1B,sector,code_key) == MI_OK)
{
}
else
{
puts("Err");
break;
}
}
};
//InitMC530(0);
//delay_ms(800);
MC530Off();
delay_ms(200);
return;
}
#endif
//可能做过的兄弟,都知道,这个是装载M1卡密码的
其中的函数原型
char Mf500KeyWriteToEeprom(unsigned char key_type,
unsigned char sector,
unsigned char * uncoded_keys
);
在我没有更改之前,他是可以编译通过的,我改了以后编译就提示参数错误
Mf500KeyWriteToEeprom(PICC_AUTHENT1B,sector,code_key) //第三个参数不对
看看,其实第三个参数这样调用应该是不对,也没什么好说的,但是问题是,为什么之前他可以正常编译通过呢?