登录论坛

查看完整版本 : 在64位计算机上处理文件,但在32位计算机上开发


poster
2019-12-10, 20:41
我将在64位Windows计算机中使用C语言的Mexfunction在Matlab中读取TDMS文件,但我将在32位Windows计算机中开发该应用。我知道在32位机器和64位变量大小之间存在差异。我用了很多fread(.. sizeof(type)..)。在64位计算机上运行会不会有问题?如果是这样,我如何使它可移植到64位mahince?

谢谢



回答:

更普遍的问题是,您将必须知道在写文件的机器上而不是正在读取文件的机器上变量的大小。换句话说,您可以在一些疯狂的64位系统上说出sizeof(int)并得到8,但是如果文件存储在普通的32位计算机上,则sizeof(int)可能是4(甚至是2)。 c,我认为)。 sizeof命令将告诉您在编译时int或本地计算机上的大小。但是它不能告诉您有关保存文件的机器的任何信息。

最好的选择是查看TDMS标准(我不熟悉)是否定义了可变大小。如果是这样,则应使用这些而不是sizeof。

第二种较差的选择是在文件的开头具有测试序列,并动态调整变量大小,直到您可以正确读取测试序列为止。



更多&回答... (https://stackoverflow.com/questions/3113958)