keil c51 left side of asn-op no lvalue怎么回事?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keil c51 left side of asn-op no lvalue怎么回事?相关的知识,希望对你有一定的参考价值。

main()

scran:
if(1=P1^0)

num1:
P2=0xee;
tim();
if(P0=0x40)

goto scran;

else

goto num1;



1=P1^0不能作左值?跪求指点

首先、if(1=P1^0)、if(P0=0x40) 这两句都有问题!
if()语句的作用是如果括号内的值为真则执行后面的语句;
你的本意是P1^0为真执行、P0为0x40执行;
应该这样写成 if(P1^0==1)、if(P0==0x40) ;
其次、= 号是赋值符号不是等于号,运算是自右往左,==是测试等于;
所以1=P1^0意思是把P1^0的值赋给1,这是不合理的!
参考技术A “1”是常量,不能作为左值,

应该写为if(1==P0)
程序下面还有一个错误:if(P0=0x40)改为if(P0==0x40),不然可能出错。本回答被提问者和网友采纳

单片机keil编译代码时报错error C213: left side of asn-op not an lvalue

unsigned char i=0;
unsigned char *p[3];
unsigned char *buff= buf;

while((p=strtok(buff,";"))!=NULL) ----(此句报错)

i++;
buff=NULL;

请问什么原因?

while((p=strtok(buff,";"))!=NULL) ----(此句报错)
缺少了对变量 p 的地址引用,改成 p[i] 如下:
while((  p[i]  =strtok(buff,";"))!=NULL)

参考技术A p[n]=strtok(buff,";");

while(p[n]!=NULL) 你为什么不可以这样写呢!还有就是你这个p你定义的是指针变量;
参考技术B while((p[i]=strtok(buff,";"))!=NULL)本回答被提问者采纳 参考技术C 一个全局变量就这样给废掉了。

以上是关于keil c51 left side of asn-op no lvalue怎么回事?的主要内容,如果未能解决你的问题,请参考以下文章

error C213: left side of asn-op not an lvalue

出现left side of asn-op not an lvalue 该怎么改

我安的keil中找不到想要的芯片,啥原因?如何设置keil中的芯片类型?KEIL MDK 与keil c51有啥区别?

Keil C51与Keil ARM共存

keil c51 printf 问题

keil c51安装完之后怎么用