首页 > 编程语言 > 详细

C++的char是有符号还是无符号

时间:2020-07-05 18:00:25      阅读:103      评论:0      收藏:0      [点我收藏+]

刚毕业找工作面试遇到这个问题,正确答案是有符号。但我答错了,因为我印象中有些扩展ASCII字符是超过128的,其实是两码事,就像UTF和Unicode也是两码事。

后来看的代码多了,发现这个问题也不用记,因为我见过unsigned char的写法,但从没见过signed char,说明默认是有符号的。

同理,size_t是无符号,而ssize_t是有符号的。

对于原先的问题,其实换一个问法更好:如何通过代码验证char是否有符号?

下面是一个简单实现:

  1 #include <iostream>
  2 
  3 template<class T> bool isSigned() { return (T)-1 < (T)0; }
  4 
  5 int main()
  6 {
  7     std::cout << isSigned<char>() << std::endl;
  8     std::cout << isSigned<unsigned char>() << std::endl;
  9     return 0;
 10 }

程序输出是1和0.

C++的char是有符号还是无符号

原文:https://www.cnblogs.com/xrst/p/13246821.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!