gpt4 book ai didi

C - 当 double 不是 8 字节长时怎么办?

转载 作者:行者123 更新时间:2023-11-30 17:03:00 25 4
gpt4 key购买 nike

我有一个 C 程序,我将在已弃用的机器上使用它。我有点害怕基本类型兼容性的问题 - 我的意思是,当我问我如何保证该 double 将是 8 个字节长?答案是

“您可以将其放入代码中:

static_assert(sizeof(double) == 8, "invalid double size");"

好的,我明白了...但是,当我运行代码并且出现“断言失败”时,我该怎么办?

我现在有什么选择?我该如何处理这个问题?我需要在那台特定的机器上运行该程序...使程序适应不同大小的 double 很难吗?附:我的程序需要 8 字节 double

编辑:为什么我需要 8 字节 double ?我从串行端口以二进制格式读取一些数据到缓冲区,并从该缓冲区中提取 IEEE754 double 和单精度数字,以对它们进行一些计算。

最佳答案

如果您需要 8 字节 double 的原因是因为您正在以这种方式将它们读取和写入数据文件,那么您需要退后一步并认真思考这一点。读取和写入“二进制”数据文件是人们喜欢做的事情之一,因为它“简单”且“高效”——但当然它非常不可移植。您可以尝试进行修补以使二进制数据文件具有一定的可移植性,但这实际上相当困难,而且当您这样做时,它不再容易或高效。

如果您能够清楚地了解如何使用文本数据文件,那么几乎所有可移植性问题都会神奇地消失,并且您将不必再担心这些数据文件。

您可以使用 %a 读取浮点量并将其写入文本数据文件,这将很好地保持准确性和精度。

关于C - 当 double 不是 8 字节长时怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36313474/

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