gpt4 book ai didi

C Big Endian 到 Little Endian 结构

转载 作者:太空宇宙 更新时间:2023-11-04 04:45:19 25 4
gpt4 key购买 nike

我有一个定义为的结构:

struct record
{
int age;
char name[12];
int department;
};

如果我从二进制文件中读取数据并且数据包含结构,我对如何解决这个问题感到困惑,我如何才能将该结构中的位顺序从大端反转为小端?

最佳答案

下面是一个简单的字节序转换实现:

// Convert from big to little or vice versa
void convert_record (struct record *bigLittle) {
int x, temp;

temp = bigLittle->age;

for (x = 0; x < sizeof (int); x++) {
((char *)&(bigLittle->age))[x] = ((char *)&temp)[sizeof (int) - x]
}

temp = bigLittle->department;

for (x = 0; x < sizeof (int); x++) {
((char *)&(bigLittle->department))[x] = ((char *)&temp)[sizeof (int) - x]
}

return;
}

但是,正如 Michael Foukarakis 上面指出的那样,您确实应该使用 ntohs和 friend 。

关于C Big Endian 到 Little Endian 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21713931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com