默认 Int 上下文中的 64 位整数文字
在编程中,整数文字表示整数。通常,这些文字被分配给默认的整数数据类型,该类型通常为 32 位宽。但是,某些情况可能会导致默认创建更大的整数文字。
其中一种情况是整数文字超出默认整数类型的范围。例如,在 C 和 C 中,没有附加“L”的文字具有可以表示其值的类型。如果该值对于 int 类型来说太大,则会将其提升为 long int 或 long long int 类型。
此提升解决了如果将文字强制转换为 32- 则可能会发生的溢出问题。位整数。 C 11 标准在 [lex.icon] ¶2 中指定了此行为,指出文字的类型将是给定列表中可以表示值的第一个:
int long int long long int
类似地,C99 定义了此§6.4.4.1 中的晋升机制。这确保了即使整数文字超出了默认整数范围,它也会被隐式转换为更大的类型,从而使其能够正确表示。
在极少数情况下,整数文字可能仍然太大可用的整数类型。在这种情况下,C99 和 C 11 都要求出现编译错误,表明该文字不能用任何受支持的类型表示。这可以防止整数溢出引起的运行时问题。
以上是整数文字什么时候变成 64 位?的详细内容。更多信息请关注PHP中文网其他相关文章!