• C每日一读(一)


    1.文件结构:
    /* Copyright (c) 2002 北京UBI公司
    * All rights reserved
    *
    * 文件名称:lud.c
    * 摘 要:处理字符串
    * 版 本:2.1
    *作 者:ludejun
    *完成日期:2002/01/01
    *
    *取代版本:2.0
    *原 作:lud98
    *原作日期:2001/11/11
    */

    头文件分目录存放

    #ifndef GRAPHICS_H
    #define GRAPHICS_H

    #include<math.h>
    #include"ludheader.h"

    void Function()
    {

    }


    class Box()
    {

    }

    #endif

    2程序的版式:
    A.空行:
    声明之后,函数定义结束以后。
    同一个函数体,逻辑关系不紧密的行之间。

    B.代码行:
    同一行代码只作一件事情。
    If for while do 自占一行,而且不管有多少语句,都加上{}
    关键字之后留空格:
    函数名之后不要留空格。
    "("向后紧跟;","")"";"向前紧跟,且紧跟出不留空格。
    ","之后留空格。
    二元操作符的前后都需要有空格。
    一元操作符前后不要空格如:~ ! ++ -- 等。
    [ ] . -> 三个复后前后不加空格。

    C.对齐
    {} 应该自占一行,而且位于同一列。并且和引用他们的语句左对齐。
    { 后面的代码块在其右边数格处左对齐。

    D.长行拆分:
    最大的长度应在70~80个字符之间。
    特别长的行:拆分缩进,把运算符放在前边。

    E.修饰符:
    * 和 & 应靠近变量名称。 int *x, y;

    F.注释:
    注释不可选宾夺主。
    代码清晰的时候,不加注释。
    写代码,写注释;改代码,改注释。
    注释应准确,易懂。不能写缩写。
    位置:在被注释代码的上方和右方。
    多重(欠套)循环,在段落的结束处加注释。

    G.类的版式:
    Private 类型的数据写在前边。
    Public 函数在前,Private 函数在后。
    3命名规则:
    Microsoft 公司的"匈牙利"法:在变量,函数名中加入便于理解的前缀。
    Int ia, ib, ix;
    Float fa, fb, fd;

    采用英文组合。
    Windows采用大小写混排。
    Unix类的系统采用小写加下划线。
    不要有仅仅是大小写不用的变量。
    不要有名称完全一样的全局变量和局部变量。
    变量名称尽量用名次或者形容词加名词。
    全局函数名称尽量用动词或者动词加名词。
    禁!避免出现数字编号。
    Windows程序的命名规则
    类名,函数名用大写字母开头的单词组合而成。
    变量,参数用小写字母开头的单词组合而成。
    常量全用大写字母,用下划线分隔。
    静态变量前缀加s_
    尽少使用全局变量。如果需要,以g_ 开头。
    类的数据成员前面加m_ 区别于数据函数的参数。
    加上反映软件性质的前缀。如prd
    Unix 应用程序的命名规则。
     
    4表达式和基本语句。
    A.加上括号以使运算的优先级鲜明。

    B.复合表达式注意:
      a.别台复杂。
      b.禁止有多个用途(隐含用途。)

    C.If语句
    布尔与零值比较: if(flag) 或者 if(!flag)
    整型和零值比较: if (vlaue==1) 或者 if (value!=1)
    指针与零值比较: if (p==NULL) 或者 if (p != NULL)
    实型和零值比较: const float EPSINON = 0.000001
    if ( (x >= EPSINON) || ( x <= EPSINON) )

    D.循环的效率
    尽可能把最长的循环放到程序的最里层。

    E.循环变量采用半开半闭的方法:
    for (I = 0 ; I < N ; I++)

    F.Switch 语句
    别忘了break;
    别忘了 default :break;

    5常量
    A.好处:
      a.可读性;
      b.避免多处来回书写的时候书写错误
      c.改动容易。

    B.Const和#define的比较。
    Const有类型、可调试。完全取代Define常量。

    C.常量定义规则:
      a.需要公开的常量,放在头文件里;不需要公开的,放在定义文件的头。可以把不同模块的常量放到同一个文件中一边集成管理。
      b.如果常量之间密切相关。应该在定义的时候来定义出来,而不应该分头去写。如 const float DIAMETER = RADIUS * 2

    D.类中的常量;
    整个类中都恒定的常量可以用枚举型的变量来定义;
    class A
    {
    enum { SIZEMAX = 100, SIZEMIN = 200}
    int Array[SIZEMIN];
    };
    但是有个弊端就是不能表示浮点数。

    6函数设计
    A.参数的规则:
      a.书写要完整。不能只写类型不写参数名称。
      b.对没有参数的函数,用void补充
      c.参数命名要恰当,顺序要合理。 Void StrCopy(char *strSource , char *strDestination)
      d.函数的参数个数需要控制,尽可能不大于5
      e.禁止使用类型和数目不确定的函数参数。

    B.返回值的规则。
      a.任何函数都需要有返回值。如果没有,则用void代替。
      b.函数名字和返回值类型不要冲突。
      c.当返回值是对象的时候,引用传递往往比值传递效率高。

    C.函数内部实现的规则。
      a.在入口处对参数的有效性进行检查。
      b.在出口处对return值得有效性进行检查。
      c.不要将return int(x + y) 写成:int temp = x + y; return temp;

    D.构造建议:
      a.功能单一,不要编制多种能的函数。
      b.函数体的规模要小,尽量小于50行代码。
      c.避免记忆功能,相同的输入相同的输出。即行为可预测性。
      d.不仅仅要检查参数的有效性,其他途径进入函数体的文件句柄,全局变量等也要校验。
      e.用于出错处理的返回值一定要清楚。让读者不容易忽视、误解错误信息。

  • 相关阅读:
    BI 和报表有什么区别
    软件评测师考试总复习(可靠性测试)
    软件评测师考试总复习(易用性测试)
    软件评测师考试总复习(标准符合性测试)
    软件评测师考试总复习(兼容性测试)
    软件评测师考试总复习(安全性测试与评估)
    软件评测师考试总复习(网络测试)
    软件评测师考试总复习(软件测试)
    软件评测师考试总复习(数据库技术)
    软件评测师考试总复习(WEB应用测试)
  • 原文地址:https://www.cnblogs.com/mars9/p/2094706.html
Copyright © 2020-2023  润新知