音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

如何定義位變量?

作者:上善若水 欄目:ARM技術(shù)
如何定義位變量?
C51有bit能聲明只有一位的變量,很適合一些標(biāo)志的定義,有效節(jié)省了內(nèi)存空間。在使用了周立功模板的ADS中的c中有沒有類似的位變量定義?難道我只是想定義一個標(biāo)志變量也要定義為uint8?

2樓: >>參與討論
zy315
RE
bit是51機(jī)C語言專用的數(shù)據(jù)類型,ANSI C中哪有這種類型??bit是為適應(yīng)51機(jī)可位尋址的128bit區(qū)域。但 標(biāo)準(zhǔn)C語言里有個叫位域,也叫位段的東西,強(qiáng)制訪問內(nèi)存中的單個位,你可以看看譚浩強(qiáng)的那本書的第12章。

3樓: >>參與討論
eleven11
位域會增加代碼
其實(shí)就是與操作,和你定義某某位什么標(biāo)志一樣的操作

4樓: >>參與討論
computer00
位段會增加代碼量以及程序運(yùn)行時間
對于32位的MCU來說,如果為了提高運(yùn)行速度,有時使用32bit的反而會比使用8bit的運(yùn)行速度快。使用1bit的也是同樣的道理。

ARM的存儲空間應(yīng)該比較,你不必為省這么幾個字節(jié)較真吧?如果實(shí)在是有太多的標(biāo)志,使用位段也可以。

5樓: >>參與討論
上善若水
請問computer00
“有時使用32bit的反而會比使用8bit的運(yùn)行速度快!笔遣皇钦f把一些原本定義為8字節(jié)的變量,定義為32字節(jié),雖然浪費(fèi)了一定的內(nèi)存空間,但是能提高運(yùn)行速度?

6樓: >>參與討論
computer00
是的。
因?yàn)樵?2位CPU上處理8bit的數(shù)據(jù),為了保證最后結(jié)果的正確性,還要進(jìn)行一些調(diào)整,例如與操作,去掉高24位等。
你可以看看生成的匯編代碼就知道了。

當(dāng)然,對于速度沒有嚴(yán)格要求的場合,使用比較小的存儲單元是好的做法,尤其是在變量很多時。
但有時為了優(yōu)化運(yùn)行速度,不得不犧牲存儲空間。

7樓: >>參與討論
zy315
a
樓主問的是如何表示單個位的標(biāo)志,只是為了改善程序的可讀性,并沒有關(guān)心速度的問題,位域顯然是通過與或操作進(jìn)行的,因?yàn)樗⒉荒芨淖傾RM處理器內(nèi)核的訪問存儲器的本質(zhì)操作,像51那種可位尋址的單元在ARM體系中不存在,訪問單個位只能通過軟件實(shí)現(xiàn),效率勢必比硬件直接支持的低。這樣做只是增加程序的可讀性。
被ZLG置頂?shù)姆⻊?wù)條款明確指明不對C語言語法進(jìn)行技術(shù)支持服務(wù),但給我們提供一個交流平臺也是好的!

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請問ZLG技術(shù)支持:如何使用LPC2138?
RTL8019溢出或者是讀寫出錯的問題。
請教ZLG的easyJTAG與ARM仿真器的具體區(qū)別
關(guān)于ucos中的TIMETICK函數(shù)的問題
請問smart2200不支持1G的CF卡?
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號