最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

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

談談C語言的指針!

作者:xillinx 欄目:嵌入式系統(tǒng)
談談C語言的指針!
我是學匯編語言開始接觸程序的,我最先學的Z80系統(tǒng)的匯編,后來又了解8086匯編,最后出來工作才學會51匯編。到現(xiàn)在我用到PowerPC處理器時,我還是喜歡在內(nèi)存拷貝和任務調(diào)度上嵌入?yún)R編,來提高指針的運行速度和合理使用指令流水,盡量避免來回跳轉(zhuǎn)把cache里的指令打亂。
我很喜歡使用指針,所以帶同事時也要求他們必須熟悉使用指針,后來我得一位同事問我,C指針到底是什么?
我才明白原來他一直在糊涂的使用指針。
應該這么說:CPU訪問內(nèi)存(也就是RAM或者ROM等)需要兩樣重要的東西,一就是8~32根數(shù)據(jù)線,用來把內(nèi)存的數(shù)據(jù)放到寄存器或者其他地方。二是需要N根地址線,把希望讀取或者寫入的內(nèi)存單元選中。那么C語言的指針保存的數(shù)據(jù)就是要送到地址線上來選中內(nèi)存單元。C語言的變量保存的東西與數(shù)據(jù)線來打交道的。
比如:
unsigned int *Addr;
Addr =(unsigned int *)0xfff7e00;

*Addr=0x678934;
也就是說CPU先把0xfff7e00送到地址線上,然后把0x678934要送數(shù)據(jù)線上,然后送出寫信號等控制信號,就完成了上面的操作。
同樣指向指針的指針的意思就是把從數(shù)據(jù)線上讀出來的數(shù)據(jù)當做地址送到地址線上去。

比如:
unsigned CHAR data;
unsigned int **Addr;
Addr =(unsigned int **)&data;
*Addr =&data;



2樓: >>參與討論
arm白癡
呵呵,把如何理解指針和訪問內(nèi)存聯(lián)系,有新意,謝謝
 
3樓: >>參與討論
jacksting
呵呵
就是這個意思。
也就是c語言里面沒有指針,有的只是數(shù)值,也就是二進制位。
函數(shù)傳遞的也不過是指針本身的值而已。
只不過這個值在使用前進行一次間接訪問而已。

4樓: >>參與討論
wolaiye3
夠精辟
和我們老師講的有的一比  
讓我的理解又深了一步

5樓: >>參與討論
strongson
C語言中的指針就是匯編語言中的間接尋址,
如果對匯編語言理解得比較深刻的話,學習C語言的指針一般都不會有什么問題。反倒是C++中的“引用”常常令人感覺不舒服。
順便提到的一個建議:函數(shù)的參量應盡量使用指針型變量。這樣可以有效避免堆棧溢出漏洞。

6樓: >>參與討論
hopeasy
謝謝
看了高手的理論,很好

我的

#define data(unsigned int *)(0x1000)

usigned CHAR Addr;
Addr=*data;


7樓: >>參與討論
smilecome
經(jīng)典
這樣理解,清楚多了,多謝

參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
PC機UART寄存器中調(diào)制解調(diào)控制寄存器(MCR)的具體含義
芯片4060是什么作用啊?
轉(zhuǎn)貼:在單片機中嵌入操作系統(tǒng)的利弊
請教關于PC104的外部中斷 IRQ9/10/11的獲得!
怎么用一個Const的指針數(shù)組存儲我的函數(shù)地址?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號