或者,某些实现可能决定尝试使用无符号类型来表示值(例如,在 C89/90 中,编译器需要使用 unsigned long int ,但在 C99 或 C++ 中则不需要)。允许实现做任何事情,因为无论如何行为是未定义的。 作为旁注,这就是为什么像 INT_MIN 这样的常量通常被定义为 #define INT_MIN (-2147483647 - 1) 而不是看似更...
或者,某些实现可能会决定尝试使用无符号类型来表示该值(例如,在C89 / 90中要求使用编译器unsigned long int,而在C99或C ++中则不需要)。允许执行任何操作,因为无论如何行为都是未定义的。顺便说一句,这就是INT_MIN通常将like常量定义为的原因#define INT_MIN (-2147483647 - 1)而不是看似更直接#define INT_...
正式地,这意味着正常数会2147483648溢出所有可用的带符号整数类型,这又意味着程序的行为是不确定的。(...