GCC 的预定义宏包括__INT8_MAX__
但不包括__INT8_MIN__
.
INT8_MIN
stdint.h
用定义(-__INT8_MAX - 1)
。
GCC 是否假设系统是二进制补码?我认为这(INT8_MAX +1)
是一种更好的定义方式,INT8_MIN
因为它可以在 1 的补码系统和 2 的补码系统中工作,最好的是 compiler-provided __INT8_MIN__
。
为什么 gcc 不提供__INT8_MIN__
?
我实际上没有任何不使用二进制补码的系统,所以我使用它没有任何问题,但我只是好奇。