最大类型值之间的关系

relation between maximum types values

本文关键字:关系 之间 类型      更新时间:2023-10-16

在我的应用程序中,我使用存储在long int变量中的大数字。有时,我不得不把它们相乘。所以我使用long long int变量来存储结果。示例:

long long int multiplication(long int a, long int b)
{
  long long int r = (long long int)a * (long long int)b;
  return r;
}

为了管理断言的先决条件,我梦想sizeof(long long int) >= 2*sizeof(long int)总是真的,但事实并非如此。似乎我唯一的保证是sizeof(long int) >= 4sizeof(long long int) >= 8,但它们之间没有规则。

处理这种情况的最佳方法是什么?

问题似乎不在于类型本身,但是你必须处理的最大值。最多64位系统,longlong long都是64位,但如果您的代码也可以移植到32位系统,您可能需要无论如何都将CCD_ 8中的值限制为32位。因为在这种情况下,没有问题,即使在某些机器上,long是64位。真正的问题是你能做出什么样的假设(以及你能验证吗)。

您可以在cstil力中使用类似于,int32_t,int64_t的东西