unsigned short int uwVal1=-10;short int wVal2=-10;
if(uwVal1==wVal2)
printf("Something");
据我所知,每当将无符号类型与有符号类型进行比较时......有符号将暂时将其转换为无符号。所以按照这个逻辑......上面的代码应该打印“Something”。
如果我喜欢这样...
printf("%u",wVal2);
它打印 4294967286!...number 远大于 short int max +range ie65535。-10 的无符号值将是 65526。逻辑与我的想法不同吗?