zoukankan      html  css  js  c++  java
  • 重读金典------高质量C编程指南(林锐)-------第四章 表达式和基本语句

    4.1 运算符的优先级

    image

    规则:如果代码行中的运算符比较多,可用括号确定操作顺序。if((a|b)&&(a&c))

    4.2   复合表达式

    规则:不要编写太复杂的复合表达式

    规则:不要有多用途的复合表达式   d = (a = b + c) + r ; 不可取。

    规则:不要把程序中的复合表达式与真正的数学表达式相混淆

    4.3  if语句

    本节以“与零值比较”为例,展开分析。

    1)布尔变量与零值比较

    规则:不可将布尔变量直接与TRUR、FALSE、或者1 、 0 进行比较。

    if(flag)   //表示flag 为真 

    if(!flag)   //表示flag为假

    2)整型变量与零值比较

    规则:用== 和 !=直接与0 比较。

    if (value == 0)

    if (value != 0)

    3) 浮点变量与零值比较

    规则:不可将浮点变量用 == 或 != 与任何数进行比较。而要注意浮点型变量都是有精度的。应该设法转化为 >= 或者 <=

    将 if (x == 0.0)改为 if ((x>=-eps) && (x<=eps))

    4)指针变量与零值比较

    规则:应该将指针变量用 == !=与NULL进行比较。

            指针变量的零值为 空 。尽管NULL的值与0相同,但两者意义不同。

    if(p == NULL) 或者 if (p != NULL)

    5)补充说明

    有些程序中这样写 if (NULL == P) 这是为了防止用户这么写if (p = NULL)

    程序中有时会遇到if/else/return的组合,应该将如下不良风格的程序
    if (condition)
    return x;

    return y;


    改写为

    if (condition)
    {
        return x; 

    }
    else
    {
        return y;
    }
    或者改写成更加简练的
    return (condition ? x : y);

    4.4  循环语句的效率

    提高循环的效率的基本办法就是降低循环体的复杂性。

    规则:当有循环的嵌套时候,建议把最长的循环放在内层。

    image

    规则:如果循环体内存在逻辑判断,且循环次数很大,建议将逻辑判断放至外层。

    image

    4.5  for 语句的循环控制变量

       规则:采用半开半闭区间的写法

    for (int x=0; x<n; x++)

    4.6  switch语句

        首先,switch语句是多分支语句。基本格式如下:

    switch(variable)

    {

        case value1:    ;break;

        case value2:    ;break;

        case value3:    ;break;

        default:           ;break;

    }

    规则:每个case分支后面,不要忘了加break,且最后还有default分支。

     

  • 相关阅读:
    (转)PHP获取今天、昨天、明天的日期
    (转)META http-equiv="refresh" 实现网页自动跳转
    (转)PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
    (转)Apache2 httpd.conf 配置详解 (二)
    Process finished with exit code 129
    Importing image to python :cannot import name 'imread'
    CUDA运行时错误 --- CUDA_ERROR_LAUNCH_FAILED: unspecified launch failure
    Recommendation system
    php手动实现ip2long和long2ip
    git将某个分支的代码完全覆盖另一个分支
  • 原文地址:https://www.cnblogs.com/zhuxuekui/p/3585499.html
Copyright © 2011-2022 走看看