在C中的字節數組和整數之間複製數據的最佳方式是什麼?目前我正在使用memcpy
,這對我來說並不合適。下面是我正在做的事情的一個例子。在字節數組和無符號長整數之間複製
struct alpha {
unsigned char byte_array[20];
}
void function(struct alpha *st) {
unsigned long num;
/* Do some stuff */
memcpy(st->byte_array, &num, sizeof(unsigned long));
/* Do more stuff */
memcpy(&num, st->byte_array, sizeof(unsigned long));
}
我想我想用蒙上莫名其妙,但我不確信如何鑄造和指針(DE)引用進行交互,尤其是當陣列涉足的。
這是100%正確的。 – caf 2010-07-07 09:56:01
但是爲什麼'char [20]'?爲什麼不'char [8]'?即您不復制數字,您正在複製這些位。 – Mazyod 2013-05-22 04:51:41
@Mazyod,問題中的原始代碼只是示例代碼,如果您要正確執行此操作,則可能會使用'unsigned char [sizeof(long)]'。 – 2013-05-22 06:15:28