Re: [問題] 請問傳入指標問題

看板C_and_CPP作者 (Cindy Wang)時間14年前 (2011/07/10 12:27), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/3 (看更多)
※ 引述《liptonbin (wind)》之銘言: : 有一個程式如下 : 其中REG=0x50 為某個暫存器address : 我想請問readata是一次取得32bit資料傳回給呼叫A的函數 : 還是一次只傳8bit的資料給呼叫者 : 若是readata是取得32bit 那readata宣告u8 *,這樣不是很怪嗎 : 若是readata是取得8bit 那memcpy看起來一次複製32bit阿 : 請問哪個對阿 : A(u8 *readata) : { : u32 val; : u32 i; : for(i=0;i<10;i++) : { : val=readfun(REG); : memcpy(readata,&val,4) : readata+=4; : } : } : 謝謝啦 memcpy 的型態是: void *memcpy(void *dest, const void *src, size_t n); 它在 dest, src 的地方是用 void*, 也就是它完全不知道你傳給他的 type 是什麼. 你在 size_t n 的地方放 4, 他就會 copy 32bit.. 你的函數 readata 是 u8* 而 copy 32bits 的確很奇怪, 但這是你要想辦法讓它不怪啊 ^^| -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.242.246.249

07/10 13:53, , 1F
如果是陣列就還好阿...
07/10 13:53, 1F
※ 編輯: CindyLinz 來自: 210.242.246.249 (09/10 13:18)
文章代碼(AID): #1E6IevMu (C_and_CPP)
文章代碼(AID): #1E6IevMu (C_and_CPP)