《编写高质量代码:改善c程序代码的125个建议》——建议13:保证除法和求模运算不会导致除零错误-阿里云开发者社区

开发者社区> 华章计算机> 正文

《编写高质量代码:改善c程序代码的125个建议》——建议13:保证除法和求模运算不会导致除零错误

简介:
+关注继续查看

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

建议13:保证除法和求模运算不会导致除零错误

我们知道,除法运算与求模运算都可能会导致除零错误。因此,我们在做除法与求模运算的时候应该避免除数为零的情况发生,示例代码如下:

unsigned int x;
unsigned int y;
unsigned int result;
/*初始x,y,result*/
if(y==0)
{
}
else
{
    result=x/y;
}

除此之外,当被除数等于有符号整数类型的最小值(负值)且除数等于-1时,也可能会产生溢出。这种情况应该尽量避免,示例代码如下:

signed long x;
signed long y;
signed long result;
/*初始x,y,result*/
if((y==0)||((x==LONG_MIN)&&(y==-1)))
{
}
else
{
    result=x/y;
}

同理,求模运算也应该采用相同的方法来避免除零错误的发生,示例代码如下:

signed long x;
signed long y;
signed long result;
/*初始x,y,result*/
if((y==0)||((x==LONG_MIN)&&(y==-1)))
{
}
else
{
    result=x%y;
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
实例告诉你如何把 if-else 重构成高质量代码!
为什么我们写的代码都是 if-else? 异常逻辑处理型重构方法实例一 异常逻辑处理型重构方法实例二 异常逻辑处理型重构方法实例三 异常逻辑处理型重构方法实例四 状态处理型重构方法实例一 状态处理型重构方法实例二 总结
3741 0
Java工程师该如何编写高效代码?
阿里妹导读:世界上只有两种物质:高效率和低效率;世界上只有两种人:高效率的人和低效率的人。——萧伯纳 同理,世界上只有两种代码:高效代码和低效代码;世界上只有两种人:编写高效代码的人和编写低效代码的人。如何编写高效代码,是每个研发团队都面临的一个重大问题。 本文作者根据实际经验,查阅了大量资料,总结了"Java高效代码50例",让每一个Java程序员都能编写出"高效代码"。
6510 0
DL之RNN:人工智能为你写代码——基于TF利用RNN算法实现生成编程语言代码(C++语言)、训练&测试过程全记录(二)
DL之RNN:人工智能为你写代码——基于TF利用RNN算法实现生成编程语言代码(C++语言)、训练&测试过程全记录
29 0
linux进程的堆栈空间_代码段(指令,只读)、数据段(静态变量,全局变量)、堆栈段(局部变量)、栈【转】
转自:http://blog.csdn.net/gongweijiao/article/details/8207333 原文参见:http://blog.163.com/xychenbaihu@yeah/blog/static/132229655201215115845553/    一)概述   .堆栈是一个用户空间的内存区域,进程使用堆栈作为临时存储。
797 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载