标题:
单片机C语言keile5<<=为什么会报错?
[打印本页]
作者:
秃头小队长
时间:
2023-1-29 21:15
标题:
单片机C语言keile5<<=为什么会报错?
keile5<<=为什么会报错?
打算把51的程序移植到32
在keil4中能用data1=data1<<=1;
但是在keil5给32位写程序时会出现错误
51hei截图_20230129211427.png
(11.2 KB, 下载次数: 23)
下载附件
2023-1-29 21:14 上传
作者:
名字不是重点
时间:
2023-1-29 22:32
话多 必失!
data1<<=1; // 有这个就可以了
data1=data1;//这个就不用了
作者:
coody_sz
时间:
2023-1-29 23:14
语法错误吧。
要么是:data1 <<= 1;
呀么是:data1 = data1 << 1;
作者:
Hephaestus
时间:
2023-1-30 07:22
a<<=b等效于a=a<<b
data1=data1<<=1; 展开后就是:
data1=data1=data1<<1;
这不是典型的语法错误还是什么?
作者:
wahacer
时间:
2023-2-20 14:24
复合运算符本身就包含给变量赋值的意思,类似 a+=3 -> a=a+3 ,是不需要再写一个等于号的。
同类的写法 a*=2,a+=3,a-=5,a/=6,a%=7,a|=8,a&=1。
基本运算符和位运算都可以给成复合运算符~
作者:
fishafish
时间:
2023-2-20 18:50
加个括号data1=(data1=data1<<1);试试
左结合的原因吧
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1