我的代码在这里。当我尝试执行时,我收到错误左值需要作为程序第二行赋值的左操作数...任何人都可以帮助我吗?
void main()
{
unsigned char name[10]="ERPDIR",buff[30];
(char *)buff = ASCII2HEX(name,buff);
printf("The HEX Value is %s\n", buff);
}
char *ASCII2HEX(unsigned char *Response,unsigned char *buff)
{
int len,hexlen=0,i=0;
unsigned char BUFF[512]="";
#ifdef PRINT_CONSOLE
printf("\n###### ASCII2HEX:");
#endif
len = strlen((char*)Response);
for(i=0;i<len;i++)
{
sprintf((char*)BUFF+(2*i),"%02X",Response[i]);
#ifdef PRINT_CONSOLE
printf("%02X ",Response[i]);
#endif
}
printf("\n");
BUFF[2*i]='\0';
hexlen=len;
memset(buff,0,sizeof(buff));
AsciiStr2HexByte((const char*)BUFF,len*2,buff,&hexlen);
buff[hexlen]='\0';
return 0;
}
最佳答案
尝试使用这一行,即不进行赋值,仅进行函数调用:
ASCII2HEX(name,buff);
您的例程已经在修改 buff
,因此不需要对其进行分配。
关于C程序执行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147987/