This question already has answers here:
Closed 6 years ago.
embedding chars in int and vice versa
(3个答案)
Copying a 4 element character array into an integer in C
(6个答案)
只是想确保我做对了。
因此,我遇到了一个问题的答案:如何将字符存储在int中,如下所示:
unsigned int final = 0;
final |= ( data[0] << 24 );
final |= ( data[1] << 16 );
final |= ( data[2] <<  8 );
final |= ( data[3]       );

但据我所知这是错误的,不是吗?
原因:假设data以小端的方式存储了整数(例如,data[0]=LSB_ofSomeInt))。
如果执行上述代码的机器是小结束符,final将保持正确的值,
否则,如果运行在代码上方的机器是big endian,那么它将保存一个错误的值,不是吗?
我只是想确定我做的对,我现在不会再问这个方向的问题了。

最佳答案

当你有htonl等功能时不要这样做。
消除麻烦

关于c - 将字符转换为整数正确方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19336736/

10-11 21:45