c语言 char memcpy,在C中使用memcpy复制无符号字符数组
int n=50;
假設你在32位機器上,'n'將是一個4字節的值。 N = 0x00000032 = 00000000B 00000000B 00000000B 00110010b
unsigned char bytes[4];
字節將已經一個4字節的值:
bytes[0]=(n>>24)&0xFF;
字節[0] = 00000000B
bytes[1]=(n>>16)&0xFF;
字節[1] = 00000000b
bytes[2]=(n>>8)&0xFF;
字節[2] = 00000000B
bytes[3]=n&0xFF;
字節[3] = 00110010b
memcpy(buffer,bytes,sizeof(bytes));
復制(的sizeof(字節))從字節4個字節來緩沖。
這是否符合您的期望可能是問題。 (更多的假設)
假定緩沖區為:預期
int buffer[1];
上述聲明將復制。但是,如果使用以下代碼測試此假設:
printf("buffer = %d\n", buffer[0]);
輸出將取決于您在哪種機器上運行它;小端,或位端。
一方面,就會出放 “緩沖液= 50” 另一方面,它將輸出的十進制值是equivelant到:
0x32000000 (00110010b 00000000 00000000b 00000000b 00000000b)
假設:
int buffer;
很可能會生成編譯器警告(或錯誤);并且可能不是您想要的,除非您更改memcpy(),如下所示:
memcpy(&buffer,bytes,sizeof(bytes));
總結
以上是生活随笔為你收集整理的c语言 char memcpy,在C中使用memcpy复制无符号字符数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图书销售统计程序c语言,图书销售管理系统
- 下一篇: android qq分享自动弹出,史上最