#define MAX(x, y) (((x) > (y)) ? (x) : (y))
size_t X = 5;
printf(“%d \n”, MAX((X-6), 0));
输出的是-1。而正常的例如 MAX(-1, 0)输出是0.
这个size_t是unsight int,但是为什么会输出-1!
size_t X = 5;
printf(“%d \n”, MAX((X-6), 0));
输出的是-1。而正常的例如 MAX(-1, 0)输出是0.
这个size_t是unsight int,但是为什么会输出-1!
解决方案
5
%d出卖了你
10
无符号的整数字, 怎么会出现-1..
5
size_t X=5;
X-6 的结果类型是什么,值是啥?
X-6 的结果类型是什么,值是啥?
5
unsight int x=5-6;
无符号运算,-1是个超大的值
无符号运算,-1是个超大的值