C标准库<string.h>
中的memcpy(dest, src,n);n是以字节为单位;
如果你拷贝的目标和目的都是short型(16位),那么就是要拷贝的数据乘以2,其它数据类型类似。
uint16_t dest[5]; uint16_t src[5] = {0x1234, 0x2345, 0x3456, 0x4567, 0x5678}; memcpy(dest,src,5*2);
当然还有void *memset(void *s, int c, size_t n); 也是以字节为单位处理的,所以
char a[5]; short b[5]; memset(a,1,5); memset(b,1,5);
结果
a[] = {1,1,1,1,1};
b[] = {0x0101,0x0101,0x0100,0x0000,0x0000};
结果a是对的,b就错了。