博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《编写高质量代码:改善c程序代码的125个建议》——建议4:数据类型转换必须做范围检查...
阅读量:6350 次
发布时间:2019-06-22

本文共 862 字,大约阅读时间需要 2 分钟。

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

建议4:数据类型转换必须做范围检查

在C语言中,数据类型转换一般可分为隐式转换和显式转换,也称为自动转换和强制转换。其中,常见的隐式转换有4种,如下所示。

1)一般算术转换:通过某些运算符将操作数的值从一种类型自动转换成另为一种类型,这一规则为“由低级向高级转换”,具体如图1-37所示。
根据图1-37所示的规则可知,若参与运算的变量类型不同,则先将变量的类型转换成同一类型,然后再进行运算。例如,int类型的变量和long类型的变量参与运算时,则会先把int类型的变量转成long类型,然后再进行运算。
这里需要特别注意的是,所有的浮点运算都是以双精度进行的,即使表达式中仅含float单精度变量,也要先将其转换成double类型后再进行运算。同时,如果char类型的变量和short类型的变量参与运算,则必须先转换成int类型。
2)输出转换:输出的操作数类型与输出的格式不一致时所进行的数据类型的转换。如下面的示例代码所示:

printf("%u",-1);

在VC++ 2010中,上面的代码将输出的值为4294967295。

3)赋值转换:在赋值运算过程中将赋值运算符右侧的操作数类型转换成左侧操作数据的类型。
4)函数调用转换:当实参类型和形参类型不一致时数据所进行的转换。
同样,显式转换也提供了两种转换方法,如下所示。
1)强制性数据类型转换:它是将一种类型的数据强制转换成为另一种数据类型。其格式为:
(数据类型标识符)表达式;
其作用是将表达式的数据类型强制转换成数据类型标识符所表示的类型。示例代码如下所示:

int i1=321;float f4=(float)i1/9.0f;

2)利用C语言提供的标准函数转换,示例代码如下所示:

int i1;char *c;c="123";i1=atoi(c);printf("%d",i1);

转载地址:http://whtla.baihongyu.com/

你可能感兴趣的文章
Dwr3.0纯注解(纯Java Code配置)配置与应用浅析三之后端反向调用前端
查看>>
Ubuntu下安装遨游浏览器
查看>>
自定义Linux service脚本
查看>>
微信开发之发红包
查看>>
一键lnmp脚本&&php扩展模块安装(适用于CENTOS6.X系列)
查看>>
二维观察---文字的裁剪
查看>>
矩形覆盖
查看>>
ICMP
查看>>
界面设计模式(第2版)(全彩)
查看>>
解决VMware Workstation错误:未能锁定文件
查看>>
CentOS6 手动编译升级 gcc
查看>>
memcached的安装与开启脚本
查看>>
zabbix 邮件报警 -- sendmail
查看>>
JavaScript异步编程
查看>>
tcpdump用法小记
查看>>
MySQL基础安全注意细节
查看>>
Oracle随机函数—dbms_random
查看>>
pvr 批量转换
查看>>
linux命令basename使用方法
查看>>
windows下开发库路径解决方案
查看>>