[問題]C/C++程式指標應用問題

看板PLT (程式語言與理論)作者 (布丁弟弟)時間12年前 (2012/09/06 23:14), 編輯推噓4(4010)
留言14則, 7人參與, 最新討論串1/1
小弟是社會新鮮人 上班之後才發現程式的不足 特別是指標的應用,我所知道的指標只停留在 基本的指標概念 #define output(port,value) *((volatile unsigned int *)(port))=(value) 1.我的解讀是:定義一個函式, 輸入參數為port及value,函式內容為把value的值存入port 變數中,這樣解讀對嗎? 2.我已經被*及括號搞的不知道怎麼回事,可以解釋一下此定義中用的括號及*的來龍去脈 嗎? 3.求學階段常用程式模擬系統,所以程式的迴圈 判別 變數宣告 副程式 運算 都沒有問題 ,唯獨沒接觸到指標,是否可以推薦一本指標進階易懂的書,給小弟我學習? 非常感謝大大們的幫助!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.224.248.231

09/06 23:40, , 1F
第一個 * 是「取值」, 第二個 * 是描述 type 的一部分
09/06 23:40, 1F

09/06 23:52, , 2F
*(volatile unsigned int *port)=value 這樣寫可以嗎?
09/06 23:52, 2F

09/06 23:52, , 3F
(volatile unsigned int *)及(port)和(value)的括號都是
09/06 23:52, 3F

09/06 23:53, , 4F
必要的嗎?
09/06 23:53, 4F

09/07 09:26, , 5F
我很想回覆但覺得你問錯板了XDDD
09/07 09:26, 5F

09/08 00:57, , 6F
他是問錯板了,該去C/C++板問...
09/08 00:57, 6F

09/08 00:57, , 7F
謝謝回答~我已經懂了!!
09/08 00:57, 7F

09/08 00:58, , 8F
這就是memory-mapped I/O的port output方式用C語言寫,
09/08 00:58, 8F

09/08 00:59, , 9F
這在一些底層程式(driver/firmware...)中常看到.
09/08 00:59, 9F

09/10 18:24, , 10F
一樓的帳號真是有夠眼熟XD
09/10 18:24, 10F

09/11 03:17, , 11F
樓上想把歡樂帶來這裡嗎? XD
09/11 03:17, 11F

09/11 13:15, , 12F
為什麼不? XD
09/11 13:15, 12F

09/12 01:07, , 13F
沒有不,只是覺得好像有難度而已 XD
09/12 01:07, 13F

11/04 10:15, , 14F
我覺得應該先把define跟定義函式的不同搞清楚
11/04 10:15, 14F
文章代碼(AID): #1GIBtJXB (PLT)
文章代碼(AID): #1GIBtJXB (PLT)