Re: 請教一下這個函數裡的指標用法
|
||||
---|---|---|---|---|
資深會員
|
感謝詳細的解答
發表於: 2008/1/23 9:39
|
|||
|
Re: 請教一下這個函數裡的指標用法
|
||||
---|---|---|---|---|
資深會員
|
謝謝指導,不過我有些地方還不大懂,望請賜教。
Q1: void lcd_puts(const char * s) 容我解釋一下,以上這個函數是一個文字型LCM用的函數,功能是輸出一個字串,因為字串是逐個字元傳送,我不明白的是傳進來的引數(字元)到底是放在什麼地方?RAM還是ROM?但是這個程式是可以執行的。 Q2:*s 這個意思是指標變數 s 所指向的內容是嗎? 謝謝。
發表於: 2008/1/22 15:53
|
|||
|
Re: 請教一下這個函數裡的指標用法
|
||||
---|---|---|---|---|
高級會員
|
參考看看!!
問題一: (a).void lcd_puts(const char * s) 這樣的宣告是什麼意思?為什麼要用 const 這個保留字? Sol(a):表示傳入此函數(void lcd_puts)的引數為字串。 const 是表示此資料在初始化後內容就不會再被改變了。一般linker會將此變數放在mcu的flash rom。 問題二: while(*s)<---這個指令的意思是不是當指標的內容不為零時就持續while迴圈? Sol(b):對!為零表示字串的所有字元都已經送出去給uart了! 問題三: SEND_CHARC(*s++);<---請問這行指令是把指標的內容還是位址加1然後傳到 SEND_CHARC 函數? Sol(c):將位址(s)的內容丟出去,在進行位址+1的動作。
發表於: 2008/1/22 12:18
|
|||
|
請教一下這個函數裡的指標用法
|
||||
---|---|---|---|---|
資深會員
|
大家好:
請教一個函數如下: void lcd_puts(const char * s){ while(*s) SEND_CHARC(*s++); //送字元 } 問題一: void lcd_puts(const char * s) 這樣的宣告是什麼意思?為什麼要用 const 這個保留字? 問題二: while(*s)<---這個指令的意思是不是當指標的內容不為零時就持續while迴圈? 問題三: SEND_CHARC(*s++);<---請問這行指令是把指標的內容還是位址加1然後傳到 SEND_CHARC 函數? 謝謝。
發表於: 2008/1/22 10:00
|
|||
|