首先将0赋给要判断的变量(a)
然后判断 变量(a)是否小于变量(a)-1,如果条件为真,则变量(a)为无符号数,否则变量(a)为有符号数。
代码:
unsigned int a = 0;
if(a < a-1) {
printf("/nunsiged");
}else{
printf("/nsigned");
}
分析:如果变量(a)为无符号数,小于号左边为无符号数,右边为-1是有符号数,两边类型不一致,编译器会稳式地把有符号数转换成无符号数,则右边为无符号数的最大数,if的条件会为真。如果变量(a)为有符号数,小于号两边类型一致,不需要转换,条件自然就为假。