#include <stdio.h>
#include <math.h>
#include <string.h>
int main(int argc, char **argv)
{
if (-1 > (unsigned int)1)
printf("转换成unsigned int\n");
else
printf("转换成int\n");
if (-1 > (unsigned char)1)
printf("转换成unsigned int\n");
else
printf("转换成int\n");
#include <math.h>
#include <string.h>
int main(int argc, char **argv)
{
if (-1 > (unsigned int)1)
printf("转换成unsigned int\n");
else
printf("转换成int\n");
if (-1 > (unsigned char)1)
printf("转换成unsigned int\n");
else
printf("转换成int\n");
}
打印结果
转换成unsigned int
转换成int
结论:char 、short 不论有没有unsigned 都转换成int
unsigned int 存在则都转成unsigned int
所以尽量不要使用无符号类型,减少这么隐式转换可能带来的不确定性