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