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

C 我们可以增加数据类型的大小吗?,c,C,例如:我们是否可以增加long-long变量的大小来存储更大的值(超过64位)如果您谈论的是编译器实现:是的,我认为C标准没有强加任何上限,只有最小值(如char为8位或更多)和相对大小的限制(如long不能小于int)。因此,您可以将大小设置为您自己的编译器中的任何内容(或现有编译器的后端),或者提供命令行开关以在编译时选择它 如果您是从应用程序程序员的角度询问:否,我不知道有哪种编译器会支持这一点。这会很复杂,您还需要使用自定义整数类型大小编译所有库,因为如果库代码预期long为64位,而您

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

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

如果您是从应用程序程序员的角度询问:,我不知道有哪种编译器会支持这一点。这会很复杂,您还需要使用自定义整数类型大小编译所有库,因为如果库代码预期long为64位,而您使用128位长调用它,那么就会出现问题。在机器代码级别,没有C类型,寄存器和内存中只有原始字节,机器代码只需在应用程序和库中的任何地方处理它们


也许你应该问一个关于你真正想要实现什么的问题,也许有一个解决方案。使用bigint库?是否使用编译器特定的非标准大整数类型?使用一个包含多个整数的结构或数组(bigint库基本上是在幕后完成这项工作的)?使用浮点?使用ascii文本编号?

也许您正在寻找类似的内容?不,您不能增加数据类型的大小。它的解决方案是使用结构如果你需要更大的数据量,你应该改变你使用的数据类型,而不是你的实际问题是什么?询问这个问题,而不是询问您的解决方案,这是一个非解决方案。您不能编辑本机类型。如果您需要存储大量的数字,并且不需要支持所有的编译器/平台,那么您可能需要依赖128位整数。我知道GCC的最新版本支持这些,可能是其他编译器。