Re: [問題] 請問傳入指標問題
※ 引述《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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):