Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-10, 20:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在64位计算机上处理文件,但在32位计算机上开发

我将在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。

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



更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 21:26


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.