在编写程序时,声明一个整型变量时,经常会用到unsigned这个关键字来声明一个无符号的整数,而声明一个有符号的整形时通常不需要写signed关键字,就会默认我们要的是一个有符号的整数,那么问题来了,关键字signed有什么用处?
查了资料以后,C语言标准清楚的规定,char,signed char,unsigned char是三种不同的类型。char 会根据具体实现场景,而决定是signed,还是unsigned 。虽然char在标准中是unsigned,但实际情况中在还是要取决编译器,编译器可能默认char是signed型,也有可能默认是unsigned型。
可通过下面的程序判断编译器的默认char类型:
void char_type()
{
char c=0XFF;
if(c==-1)
printf("signed");
else if(c==255)
printf("unsigned");
else
printf("error!);
}
希望可以帮助到大家。