我们可以增加数据类型的大小吗?

时间:2016-01-22 05:10:01

标签: c

例如:我们可以增加long long变量的大小来存储更大的值。(超过64位)

1 个答案:

答案 0 :(得分:1)

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

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

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