找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1979|回復(fù): 5
收起左側(cè)

單片機(jī)C語言keile5<<=為什么會(huì)報(bào)錯(cuò)?

[復(fù)制鏈接]
ID:915590 發(fā)表于 2023-1-29 21:15 | 顯示全部樓層 |閱讀模式
keile5<<=為什么會(huì)報(bào)錯(cuò)?
打算把51的程序移植到32
在keil4中能用data1=data1<<=1;
但是在keil5給32位寫程序時(shí)會(huì)出現(xiàn)錯(cuò)誤
51hei截圖_20230129211427.png

回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2023-1-29 22:32 | 顯示全部樓層
話多 必失!
data1<<=1; // 有這個(gè)就可以了
data1=data1;//這個(gè)就不用了
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2023-1-29 23:14 | 顯示全部樓層
語法錯(cuò)誤吧。
要么是:data1 <<= 1;
呀么是:data1 = data1 << 1;
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2023-1-30 07:22 | 顯示全部樓層
a<<=b等效于a=a<<b
data1=data1<<=1; 展開后就是:
data1=data1=data1<<1;
這不是典型的語法錯(cuò)誤還是什么?
回復(fù)

使用道具 舉報(bào)

ID:1063596 發(fā)表于 2023-2-20 14:24 | 顯示全部樓層
復(fù)合運(yùn)算符本身就包含給變量賦值的意思,類似 a+=3 -> a=a+3 ,是不需要再寫一個(gè)等于號(hào)的。
同類的寫法 a*=2,a+=3,a-=5,a/=6,a%=7,a|=8,a&=1。
基本運(yùn)算符和位運(yùn)算都可以給成復(fù)合運(yùn)算符~
回復(fù)

使用道具 舉報(bào)

ID:1059013 發(fā)表于 2023-2-20 18:50 | 顯示全部樓層
加個(gè)括號(hào)data1=(data1=data1<<1);試試
左結(jié)合的原因吧
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表