|
發布時間: 2023-1-29 21:15
正文摘要:keile5<<=為什么會報錯? 打算把51的程序移植到32 在keil4中能用data1=data1<<=1; 但是在keil5給32位寫程序時會出現錯誤 |
|
加個括號data1=(data1=data1<<1);試試 左結合的原因吧 |
|
復合運算符本身就包含給變量賦值的意思,類似 a+=3 -> a=a+3 ,是不需要再寫一個等于號的。 同類的寫法 a*=2,a+=3,a-=5,a/=6,a%=7,a|=8,a&=1。 基本運算符和位運算都可以給成復合運算符~ |
|
a<<=b等效于a=a<<b data1=data1<<=1; 展開后就是: data1=data1=data1<<1; 這不是典型的語法錯誤還是什么? |
|
語法錯誤吧。 要么是:data1 <<= 1; 呀么是:data1 = data1 << 1; |
|
話多 必失! data1<<=1; // 有這個就可以了 data1=data1;//這個就不用了 |