文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C陷阱与缺陷 读后: char c = 128; (unsigned int..

C陷阱与缺陷 读后: char c = 128; (unsigned int..

时间:2010-08-01  来源:slimzhao

C语言中, char 没有signed和unsigned修饰时, 具体是否有符号取决于实现, 作者说, 一个错误认识是:
如果c是一个字符变量, 使用(unsigned)c就可得到与c等价的无符号整数. 这是会失败的.


char c = 128;
printf("Hello, world:[%u]\n", (unsigned int) c );

我在VC2008上试验, 得到的结果是
4294967168

原因是, (ungisned int)是强制类型转换, 它也是个运算符, 而运算符作用于char时, 会先把它转换为int, 再实施强制的类型转换.

作者建议的做法是
(unsigned char)c, 原因是unsigned char类型的字符在转换为无符号整数时无需首先转换为int型整数.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载