int
将 a放入char
数组的最佳方法(性能)是什么?这是我当前的代码:
data[0] = length & 0xff;
data[1] = (length >> 8) & 0xff;
data[2] = (length >> 16) & 0xff;
data[3] = (length >> 24) & 0xff;
data
是一个char
数组(共享 ptr)并且length
是int
.
int
将 a放入char
数组的最佳方法(性能)是什么?这是我当前的代码:
data[0] = length & 0xff;
data[1] = (length >> 8) & 0xff;
data[2] = (length >> 16) & 0xff;
data[3] = (length >> 24) & 0xff;
data
是一个char
数组(共享 ptr)并且length
是int
.
你在找memcpy吗
char x[20];
int a;
memcpy(&a,x,sizeof(int));
您的解决方案也很好,因为它是字节序安全的。
附带说明:-
sizeof(int)==4
尽管对于任何特定的实现都没有这样的保证。
只需使用reinterpret_cast
. 像使用 int 指针一样使用数据数组。
char data[sizeof(int)];
*reinterpret_cast<int*>(data) = length;
BTWmemcpy
比这慢得多,因为它使用循环逐字节复制。
在整数的情况下,这只是一个简单的赋值。
这是唯一的方法。理论上你可以使用memcpy
orreinterpret_cast
但你不能因为endians的问题。