《编写高质量代码:改善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月前
|
算法
‘/’ 和 ‘%’ 在编程中的作用【附加练习题】
‘/’ 和 ‘%’ 在编程中的作用【附加练习题】
|
5月前
|
缓存 监控 程序员
Python中的装饰器是一种特殊类型的声明,它允许程序员在不修改原有函数或类代码的基础上,通过在函数定义前添加额外的逻辑来增强或修改其行为。
【6月更文挑战第30天】Python装饰器是无侵入性地增强函数行为的工具,它们是接收函数并返回新函数的可调用对象。通过`@decorator`语法,可以在不修改原函数代码的情况下,添加如日志、性能监控等功能。装饰器促进代码复用、模块化,并保持源代码整洁。例如,`timer_decorator`能测量函数运行时间,展示其灵活性。
50 0
feof用法重点详解(易被误用判断文件结束!!!)
feof用法重点详解(易被误用判断文件结束!!!)
|
小程序
小程序 onLaunch 参数差别
小程序 onLaunch 参数差别
540 0
小程序 onLaunch 参数差别
|
JavaScript 前端开发 测试技术
[译]借助函数完成可组合的数据类型(软件编写)(第十部分)
本文讲的是[译]借助函数完成可组合的数据类型(软件编写)(第十部分),在 JavaScript 中,最简单的方式完成组合就是函数组合,并且一个函数只是一个你能够为之添加方法的对象。换言之,你可以这么做:
1021 0
|
存储 算法
《编程原本 》一1.5 规范类型
本节书摘来自华章出版社《编程原本 》一书中的第1章,第1.5节,作者(美)斯特潘诺夫(Stepanov, A.),(美)麦克琼斯(McJones, P.),更多章节内容可以访问云栖社区“华章计算机”公众号查看
869 0
下一篇
无影云桌面