程序:
#include <stdio.h>
#include <limits.h>
int main( void )
{
#ifdef __CHAR_UNSIGNED__
printf( "%d\n", __CHAR_UNSIGNED__ );
#endif
printf( "%d\n", CHAR_MAX );
printf( "%d\n", CHAR_MIN );
printf( "%hhd\n", CHAR_MAX );
}
输出(在我的x86_64桌面上):
127
-128
127
这是意料之中的。现在,我在覆盆子圆周率(手臂)上也做了同样的测试:
1
255
0
-1
所以…
显然我误解了
一些步骤
CHAR_MAX
正在以其方式输出,如
我期望的输出
在最后一行--传球
字符最大值
到
%hhd
在机器上
char
未签名--
本来应该是
255
.
(如果你问的话,结果是一样的
(char)CHAR_MAX
,和
(unsigned char)CHAR_MAX
)
我错过了什么?
在回归测试中,我也遇到过这种情况。
printf()
对覆盆子PI的实现——顺便说一下,
做
打印
255个
.所以…只有一个实现是正确的,我有一种下沉的感觉,它不是我的…