整数文字:默认情况下并不总是 Int
在循环中迭代时,过大的整数文字可能会导致意外问题。通常,不带后缀的文字被解释为 int。然而,这个假设对于非常大的值可能不成立。
溢出和提升
当整数文字超过 int 的范围(通常是 32 位)时, undefined可能会导致行为(UB)。但是,在某些情况下,编译器可能会自动将文字提升为更大的类型,例如 long int(通常为 64 位)。
标准规范
C 和 C 标准都规定了整数文字的提升以适当types.
示例
考虑整数文字 10000000000。在 C 环境中,这将被解释为 long int。但是,如果使用的编译器是 32 位编译器,则可能会导致编译错误,因为文字对于可用的整数类型来说太大。
以上是为什么 C 和 C 中过大的整数文字有时不默认为'int”?的详细内容。更多信息请关注PHP中文网其他相关文章!