Re: [問題] 指標

作者: su27 (su27)   2014-08-08 13:59:51
你的問題在於你沒學過組合語言
你學過組合語言 在去看指標會超級容易
我宣告一連串的變數a~p(我懶的算是不是16個)
這些變數的存放位址從0x20~0x2F(你也能當這是陣列)
我要去將變數的值全加起來 你程式要sum+=a sum+=b .....
指標你把它想成它有兩個暫存器一個放 你要寫入你要讀取的位址 另一個是那位址的值
如暫存器0x200 存放的值是20
你寫x1=0x200 就是將你要讀取的暫存器的位址寫入
sum+=*x1 就是將儲存在暫存器0x200的值讀出來
這樣我只要寫幾行程式就能達到我的要求
一行是將我要讀的位址寫入固定的暫存器 在去指定的暫存器讀值
這樣我的程式就會變小(當然n越大 省越多 只有1~2變數 直接給值是最省的)
其實你使用的陣列就是指標 在編譯器我個人是認為他看到指標跟陣列
對它來講是一樣的
※ 引述《GooLoo (平凡)》之銘言:
: 之前有查過一些c語言的書, 瞭解指標...
: 但是看完文字描述, 還是不太會用, 也不是很了解它的精神
: 平常都寫一些簡單控制時序的程式,沒有用到指標
: 今天看別人寫的CODE,又看到指標.....
: 還是想問這問題, 就是我把*拿掉跟沒拿掉,對整體動作有什麼影響?
: 如果沒影響, 好處又是什麼呢?
: 如:
: void test(unsigned char *data,unsigned long len)
: {
: .....
: }
: 不曉得程式給這樣夠嗎?還是要給些什麼?
: 我看程式大部份都寫得跟我平常寫法差不多,只有這邊多*

Links booklink

Contact Us: admin [ a t ] ucptt.com