您的位置:網(wǎng)站首頁 > 電器維修資料網(wǎng) > 正文 >
C語言編程時的注意事項
★★★★★【文章導讀】:C語言編程時的注意事項具體內(nèi)容是:1)關(guān)于設置指針SP的問題。編譯器在把所有變量和緩沖區(qū)賦予地址后,自動把 后一個字節(jié)開始的地方,作為SP的開始位置,所以初學者是不必要去理會的。這體現(xiàn)C的優(yōu)越性,很多事情C編譯時候做了。2)在51系列中data,idat…
來源: 日期:2013-12-18 14:00:48 人氣:標簽:
1)關(guān)于設置指針SP的問題。
編譯器在把所有變量和緩沖區(qū)賦予地址后,自動把 后一個字節(jié)開始的地方,作為SP的開始位置,所以初學者是不必要去理會的。這體現(xiàn)C的優(yōu)越性,很多事情C編譯時候做了。
2)在51系列中data,idata,xdata,pdata的區(qū)別data:固定指前面0x00-Ox7f的128個RAM,可以用aCC直接讀寫的,速度 快,生成的代碼也 小。
idata:固定指前面0x00-0xff的256個RAM,其中前128和data的128完全相同,只是因為訪問的方式不同。idata是用類似C中的指針方式訪問的。匯編中的語句為:moxA,@Rx.xdata:外部擴展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。
pdata:外部擴展RAM的低256個字節(jié),地址出現(xiàn)在A0-A7的上時讀寫,用movxACC,@Rx讀寫。這個比較特殊,而且C51好象有對此BUG,建議少用。但也有他的優(yōu)點,具體用法屬于中級問題,這里不提。
3)startUp.a(chǎn)51的作用和匯編一樣,在C中定義的那些變量和數(shù)組的初始化就在star。tup.a(chǎn)51中進行,如果你在定義全局變量時帶有數(shù)值,如LJnsignedchardataXXX=100;,那startup.a(chǎn)51中就會有相關(guān)的賦值。如果沒有=100,startup.a(chǎn)51就會把他清O。(startup.a(chǎn)51==變量的初始化)。
這些初始化完畢后,還會設置SP指針。對非變量區(qū)域,如堆棧區(qū),將不會有賦值或清零動作。
【看看這篇文章在百度的收錄情況】
相關(guān)文章
- 上一篇: C語言與匯編語言程序的混合編程
- 下一篇: 什么是空載功耗?