if后的判断条件
转自https://blog.csdn.net/lxn18392641463/article/details/78321080
先说明原因。这里不只是有代码规范的问题,还有汇编语言的问题,要知道为什么,别认为是自己代码习惯不好。慢就是错,
比如这里提到的
一、BOOL与0值得比较
规则:不可将BOOL型变量直接与TRUE,FALSE,1,0比较。
根据BOOL型变量的定义,零值为假(记为FALSE),非零值都为真。
假设BOOL型变量名为flag,它与零值比较的标准If语句为:
if(flag)//表示flag为真,
if(!flag)//表示flag为假
其他的都属于不良风格:
if(flag == TRUE)
if(flag == FALSE)
if(flag == 0)
if(flag == 1)
因为这些不良风格,都运行的汇编语言次数比if(flag)多。
if(flag == TRUE),至少运行了flag的替换值,TRUE的替换数字,然后==判断。==判断后返回真假值,然后才给if了判断条件
=========================================================================================================
一、BOOL与0值得比较
规则:不可将BOOL型变量直接与TRUE,FALSE,1,0比较。
根据BOOL型变量的定义,零值为假(记为FALSE),非零值都为真。
假设BOOL型变量名为flag,它与零值比较的标准If语句为:
if(flag)//表示flag为真,
if(!flag)//表示flag为假
其他的都属于不良风格:
if(flag == TRUE)
if(flag == FALSE)
if(flag == 0)
if(flag == 1)
二,int 与0值比较
规则:应当将整型变量用==或者!=直接与0比较
假设整型变量的名字是value,与0值比较的标准if 语句是
if(valye == 0)
或者if(value != 0)
不可模仿BOOL型变量写成如下形式:
if(value)或者if(!value)这样会让别人以为是BOOL类型的变量
三、浮点变量与0值的比较:
无论是float还是double类型的变量它都有精度限制,所以一定要避免将浮点变量与数值进行比较,
一定得转化为>=或者<=形式进行比较。
假设浮点的变量是x,
#define EPSINON = 0.000001
应该转化为if((x >= -EPSINON) && (x<= EPSINON)),其中EPSINON是实现规定的精度。
不可以直接if(x == 0.0)
四、指针变量与0值的比较;
假设指针变量为p
虽然指针空(NULL)值是0,但是与0的意义是不一样的。它与0值比较的标准if语句如下:
if(p == NULL)
if(p != NULL)
不能写成:
if(p == 0)或者if(p != 0)这会让人误以为是整型变量
if(p)或者if(!p)这会让人误以为BOOL类型变量
if后的判断条件的更多相关文章
- wait()方法写在while循环中可以在线程接到通知后再一次判断条件
wait()方法写在while循环中可以在线程接到通知后再一次判断条件 synchronized public String pop() { String returnValue = "&q ...
- MyBatis 判断条件为等于的问题
在用MyBatis操作数据库的时候相信很多人都用到,当在判断null, 大于,大于等于,小于,小于等于,不等于时估计很多都用到,比较容易实现了,这里就省略了,但唯独判断条件为等于时估计蛮多人遇到坑了, ...
- yii2-验证规则,rules,判断条件
yii2模型的验证规则,简单的使用我就不详细说了,想看的可以去看官网教程http://www.yiichina.com/doc/guide/2.0/structure-models#validatio ...
- shell中条件判断语法与判断条件小结
1. IF条件判断语法: if Athen dosthelif B dosthelse dosthfi 2. 判断条件: 2.1 字符串判断 str1 = str2 当两个串有相同 ...
- shell 脚本——判断条件
在之前的shell语言学习笔记中已经写过shell的几种判断语句及循环语句,也简单的介绍了shell语言判断语句和判断条件.在此再做进一步学习. test命令的测试功能 test命令用于检测系统文件及 ...
- Linux if 命令判断条件总结
Linux if 命令判断条件总结Linux if命令 关于文件属性的判断式 -a 如果文件存在 -b 如果文件存在,且该文件是区域设备文件 -c 当file存在并且是字符设备文件时返回真 -d 当p ...
- MySQL使用时间作为判断条件
背景:在开发过程中,我们经常需要根据时间作为判断条件来查询数据,例如:当月,当日,当前小时,几天内...... 1. 当月 我们只需要使用一个mysql的MONTH(date)函数即可实现.(注意判断 ...
- if语句中的判断条件(nginx)
if语句中的判断条件 正则表达式匹配: ==:等值比较; ~:与指定正则表达式模式匹配时返回"真",判断匹配与否时区分字符大小写: ~*:与指定正则表达 ...
- ThinkPHP3.2中if判断条件是两个变量
<select name="typeId"> <foreach name="typeInfo" item="v"> ...
随机推荐
- java 单链表反转
最近与人瞎聊,聊到各大厂的面试题,其中有一个就是用java实现单链表反转.闲来无事,决定就这个问题进行一番尝试. 1.准备链表 准备一个由DataNode组成的单向链表,DataNode如下: pub ...
- Java调用Http/Https接口(1)--编写服务端
Http接口输入的数据一般是键值对或json数据,返回的一般是json数据.本系列文章主要介绍Java调用Http接口的各种方法,本文主要介绍服务端的编写,方便后续文章里的客户端的调用.文中所使用到的 ...
- 聊聊GIS中的坐标系|再版
本文约6500字,建议阅读时间15分钟. 作者:博客园/B站/知乎/csdn/小专栏 @秋意正寒 版权:转载请告知,并在转载文上附上转载声明与原文链接(https://www.cnblogs.com/ ...
- React 核心思想之声明式渲染
React 发展很快,概念也多,本文目的在于帮助初学者理清 React 核心概念. React 及 React 生态 React 的核心概念只有 2 点: 声明式渲染(Declarative) 基于组 ...
- XnViewer管理浏览照片、图片
有时候拍完照片想要浏览照片.浏览照片的时候想做一些标记,这个时候就需要使用照片管理器: 之前一直使用谷歌的picasa(不更新了),adobe也有个管理器(比较大):这里主要推荐一个: https:/ ...
- SQLSEVER导出 xml文件
各种都可以参照: 链接:https://wenku.baidu.com/view/778f794bfe4733687e21aa90.html 怎样把SQL Server里的某个表的数据导出成XML文件 ...
- Python多版本环境搭建(Linux系统)
python Linux 环境 (版本隔离工具) 首先新建用户,养成良好习惯 useradd python 1.安装pyenv GitHub官网: https://github.c ...
- Linux命令cut
原文 cut 文件内容查看 显示行中的指定部分,删除文件中指定字段 显示文件的内容,类似于下的type命令. 说明 该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将 ...
- Django使用Redis进行缓存详细最全流程
背景和意义服务器数据非经常更新.若每次都从硬盘读取一次,浪费服务器资源.拖慢响应速度.而且数据更新频率较高,服务器负担比较大.若保存到数据库,还需要额外建立一张对应的表存储数据.在Django中建立表 ...
- linux 非root用户安装nginx
第一步:首先下载依赖包 下载地址 pcre(www.pcre.org),zlib(www.zlib.org),openssl(www.openssl.org) 第二步:上传那个nginx的安装包 下载 ...