我正在尝试使用结构定义访问二进制文件中的某些数据成员。
在thi文件中,它应该包含一个名为fxID的结构成员。在下面的代码中,我试图访问fxID,但它不起作用,它返回的数字不正确。更奇怪的是,如果我将fxID更改为fxVersion,我会得到相同的数字,所以看起来printf根本没有提取正确的数据。
FILE *p;
struct myStruct x;
p=fopen("myfile.fxb","rb");
size_t n = fread(&x, sizeof(x), 1, p);
if (n != 1) {
// Some error message
//printf("%i", sizeof(x));
} else {
printf("\n\nID:%d\n", x.fxID);
}
知道为什么我无法访问fxID中的数据吗?根据我在printf语句中使用的类型,我得到了奇怪的结果。例如,如果我使用printf(“%d”,x.fxID),我会得到数字1606416148;但是,这是错误的,因为我相信fxID是1447514692.这是因为字节序吗?我知道该文件是大端,它提到需要在我链接的头文件中转换它。
可能是因为使用了Int吗?或者错误的类型?