用fwrite将int跟char类型的变量写入二进制文件,用64位机器和32位机器,写出的二进制文件一样吗

用fwrite将int和char类型的变量写入二进制文件,用64位机器和32位机器,写出的二进制文件一样吗
将32位机器上写的二进制文件拷贝到64位机器上,文件一样吗?如果不一样,能转换成一样的文件吗?

------解决方案--------------------
1、将32位机器上写的二进制文件拷贝到64位机器上,文件当然是一样的;
2、用fwrite将int和char类型的变量写入二进制文件,文件当然是不一样的,这个时候需要自己定义可移植类型,比如typedef unsigned int int32u_t之类的定义。
------解决方案--------------------
当然是可以的,掌握好字节数和字节的顺序就没有问题,都用字节流来表达的话,是可以跨平台的。
------解决方案--------------------
推荐使用WinHex软件查看文件或内存中的原始字节内容。

------解决方案--------------------
应该是对的,保险一点的话,用工具查看二进制的字节数据,UltraEdit和Pspad还有Notepad++加插件都是可以的。

探讨

引用:

比如说
FILE *file = fopen("...", "wb");
int a = 1;
double b = 1.0;
fwrite(&a, sizeof(int), 1, file);
fwrite(&b, sizeof(double), 1, file);
fclose(file);
那么这段代码在32位上……

------解决方案--------------------
尺寸没问题, 大小端需要统一。
------解决方案--------------------
不同的系统之间传递文件是没有问题的。