对于大多数整数类型,最小值将比最大值大1英寸,对吧?
喜欢长期的范围是-9223372036854775808到9223372036854775807.当我运行我的程序时,为什么-9223372036854775808和9223372036854775808都给了我一个编译器警告并导致错误,而不是只有intmax_t max?
因为intmax_t min应该在-9223372036854775808有效,不是吗?
编辑:我也试过9223372036854775807和-9223372036854775807,他们都工作正常。
答案 0 :(得分:6)
(允许我使用16位值作为较短的数字)
从技术上讲,当你在C中写!!
时,你写了:
“值32768的负值”
32,768对于正16位值来说太大了,即使-32,768有效。
这就是为什么你经常会看到像-32768
这样的标头文件:
limits.h
这个问题基本上涵盖了相同的信息: