2016-01-22 98 views
-4

例如:我们是否可以增加long long变量的大小来存储更大的值(大于64位)我们可以增加数据类型的大小吗?

+0

也许你正在寻找类似[GMP](https://gmplib.org/)的东西? – chris

+0

不,您不能增加数据类型的大小。它的解决方案是使用结构 – Shafiq

+0

如果你需要更大的数据大小,你应该改变你使用的数据类型 – Ian

回答

1

如果您在谈论编译器实现:是的,我认为C标准没有强加任何上限,只有最小值(如char是8位或更多)和相对大小的限制(比如,long不能小于int)。所以你可以在你自己的编译器(或者现有的编译器的后端)中设置任何大小,或者在编译时提供命令行开关来选择它。

如果你是从应用程序员的角度来问:没有,我不知道一个支持这个的编译器。它会有复杂性,你还需要使用自定义整数类型大小编译的所有库,因为如果库代码期望长为64位,并且用128位长度调用它,则会出现问题。在机器代码级,没有C类型,寄存器和内存中只有原始字节,机器代码只需在应用程序和库中的任何地方处理它们。

也许你应该问一个关于你实际想达到什么的问题,可能有一个解决方案。使用bigint库?使用编译器特定的非标准大整数类型?使用一个结构或一个数组中有几个整数(一个bigint库基本上这是在引擎盖下)?使用浮点?使用ascii文本号码?

相关问题