《编写高质量代码:改善c程序代码的125个建议》——建议2-4:禁止把size_t类型和它所代表的真实类型混用

简介:

本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第1章,建议2-4,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

建议2-4:禁止把size_t类型和它所代表的真实类型混用

我们知道,size_t类型代表的是一种无符号整数类型,现在有这样一个问题:既然size_t类型是一种无符号整数类型,那么它是否可以直接与它所代表的真实实际类型混合使用呢?带着这个问题,我们来看下面这段代码:

unsigned int x;  
size_t y;  
x = y;

在上面的代码中,变量x被声明为unsigned int类型(即无符号整数类型),变量y虽然被声明为size_t类型,但它同样是一种无符号整数类型。因此,从表面上看,语句“x = y”完全是可行的,但实际情况并非如此。
上面已经阐述过,size_t类型在不同的平台上很可能代表的是unsigned int、unsigned long int或者unsigned long long int类型。当代表unsigned int类型时,执行语句“x = y”不会出现什么问题;但如果代表的是unsigned long int或unsigned long long int类型,那么执行语句“x = y”时,就可能把y的高位给截掉,从而导致结果出错。因此,我们千万不能在程序中混用size_t类型和它所代表的真实类型,这一点一定要注意。

相关文章
|
6月前
|
存储 自然语言处理 算法
通过实际的例子,介绍编译器的工作过程
通过实际的例子,介绍编译器的工作过程
44 0
feof用法重点详解(易被误用判断文件结束!!!)
feof用法重点详解(易被误用判断文件结束!!!)
|
小程序
小程序 onLaunch 参数差别
小程序 onLaunch 参数差别
435 0
小程序 onLaunch 参数差别
|
JavaScript 前端开发 测试技术
[译]借助函数完成可组合的数据类型(软件编写)(第十部分)
本文讲的是[译]借助函数完成可组合的数据类型(软件编写)(第十部分),在 JavaScript 中,最简单的方式完成组合就是函数组合,并且一个函数只是一个你能够为之添加方法的对象。换言之,你可以这么做:
994 0
|
存储 算法
《编程原本 》一1.5 规范类型
本节书摘来自华章出版社《编程原本 》一书中的第1章,第1.5节,作者(美)斯特潘诺夫(Stepanov, A.),(美)麦克琼斯(McJones, P.),更多章节内容可以访问云栖社区“华章计算机”公众号查看
829 0