zoukankan      html  css  js  c++  java
  • 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类型变量

  • 相关阅读:
    php的错误处理机制
    php的自动加载函数spl_autoload_register和__autoload
    mysql日志配置
    01,易语言网页填表
    mac 的全文搜索
    react native 热更新
    码云的使用教程
    autolayout实现水平三等分
    mac命令行快捷键
    什么是延展性(Malleability,可鍛性)
  • 原文地址:https://www.cnblogs.com/XiHua/p/12058242.html
Copyright © 2011-2022 走看看