您的位置:首页 > 编程语言 > C语言/C++

神奇的C语言六:char可以是负数吗

2014-05-28 09:06 357 查看
C语言标准中没有规定char是signed char还是unsigned char,所以这就取决于编译器的实现了。

大部分编译器默认情况下将char解释为signed char,例如gcc和vc的编译器,这很大程度上是因为int默认是signed。

工作中解决此问题的方法:

1、使用编译器选项明确指定char的符号类型;

2、在程序中进行判断,两种方法,主要代码如下:

int main(){
char a = -1;
if (CHAR_MIN == SCHAR_MIN){
printf("signed char\n");
}else{
printf("unsigned char\n");
}
if (a == -1){
printf("signed char\n");
}else{
printf("unsigned char\n");
}
return 0;
}

认为char就是signed char大部分情况下是没有问题的,不过以防万一还是没有错的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C char
相关文章推荐