[問題] assign char到(char*)會有error?
遇到的問題: (題意請描述清楚)
(char)*(direct_opnd))='0';
上面這一行在freebsd,linux compile會出現
lvalue required as left operand of assignment這個錯誤訊息
我在visual studio 2008可以compile過,但是用系上工作站會出現error...
我看得懂那一行是要把一個char丟給direct_opnd( 定義時 char *direct_opnd;)
希望得到的正確結果:
希望這一行能compile過
程式跑出來的錯誤結果:
lvalue required as left operand of assignment
開發平台:VC++ okay無誤
linux freebsd都會出現問題
有問題的code: (請善用置底文標色功能)
int direct_addr255_check(direct_str)
char *direct_str;
{ int len, direct_addr;
char *direct_opnd;
len=strlen(direct_str);
direct_opnd=string_copy(direct_str);
if((char)*(direct_opnd)=='+') ((char)*(direct_opnd))='0';
if((char)*(direct_opnd+len-1)=='H' && len>1)
{ (char)*(direct_opnd+len-1)='\0';
direct_addr=aHEXtoint(direct_opnd);
}
else if((char)*(direct_opnd+len-1)=='B' && len>1)
{ ((char)*(direct_opnd+len-1))='\0';
direct_addr=aBINtoint(direct_opnd);
}
else if((char)*(direct_opnd+len-1)=='O' && len>1)
{ ((char)*(direct_opnd+len-1))='\0';
direct_addr=aOCTtoint(direct_opnd);
}
else if((char)*(direct_opnd+len-1)>='0' &&
(char)*(direct_opnd+len-1)<='9')
{ direct_addr=aDECtoint(direct_opnd);
}
else direct_addr=-1;
// if(direct_addr>=0 && direct_addr<255) {}
// else direct_addr=-1;
free(direct_opnd);
return direct_addr;
}
補充說明:不好意思打擾各位了,我想說的是,這不是上物件導向或者c語言
上課的作業,是組合語言的作業,教授丟了code給我們要修改可是
一compile就有錯誤,我想了很久不知道錯在哪才上來詢問,希望大家
幫幫忙.thanks...
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.246.132
→
07/02 09:42, , 1F
07/02 09:42, 1F
→
07/02 10:03, , 2F
07/02 10:03, 2F
→
07/02 10:21, , 3F
07/02 10:21, 3F
→
07/02 11:05, , 4F
07/02 11:05, 4F
→
07/02 11:05, , 5F
07/02 11:05, 5F