[問題] 如何將陣列中前4個bytes的值複製到int變數中

看板C_and_CPP (C/C++)作者 (43米的深海)時間16年前 (2009/11/24 16:08), 編輯推噓3(303)
留言6則, 3人參與, 最新討論串1/1
我有一個陣列 char buffer[100] 我想將前4個byte的值寫入一個int的變數中 請問有沒有更好的作法,以下是我的作法 char buffer[100]; for(i=0;i<100;i++){ buffer[i] = i;} int NUM_SIZE; memcpy(&NUM_SIZE, buffer, sizeof(int) ); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.22.20.210

11/24 16:13, , 1F
四個byte拼成一個int?? 可以直接union起來嗎....@_@"
11/24 16:13, 1F

11/24 16:14, , 2F
不過union可能要注意endian的問題就了....@_@"
11/24 16:14, 2F

11/24 16:16, , 3F
memcpy也一樣
11/24 16:16, 3F

11/24 16:34, , 4F
試試看直接typecast: NUM_SIZE = *((int *)buffer);
11/24 16:34, 4F

11/24 16:35, , 5F
endian 要對才可以用
11/24 16:35, 5F

11/24 16:36, , 6F
感想: 這些印弟安怎麼這麼麻煩.... (大誤XD)
11/24 16:36, 6F
文章代碼(AID): #1B2vII04 (C_and_CPP)
文章代碼(AID): #1B2vII04 (C_and_CPP)