编码规范 (二)

编码规则规范

0、使用h头树型

      h头文件树型链接,要添加#pargma once  多使用声明把头文件移入CPP中屏蔽接口显露有用的接口即可,h中只能有声名,不能有定义类或实际代码(实际函数或变量实体

class struct的定义可以在内有函数。

     全局变量要 在constant.h中声明,随意#include  在Constant.cpp中定义 全局变量仅在此处有,类库中全无。

    h头文件中只有声明,不存在定义,定义全部放在cpp/c文件中。

1、避免使用“魔数”

      避免:for (int index=0;index<512;++index){ //魔数

      推荐用法:int bufsize=512;

                        for (int index=0;index<bufsize;++index){

    使用宏定义在h头中 该头可以随便include

2、注意比较操作符的使用

      使用了“<”而不是“!=”应该这样改:

  int bufsize=512;

  for (int index=0;index!=bufsize;++index){

3、要善于利用“const”对象

  还是上面的程序代码,其中我们定义了“int bufsize=512”,这就意味着在程序的某个地方都可以修改bufsize的值,这显然不符合我们的初衷。所以这里就有一个比较严重的

       问题:“bufsize”是可以修改的。bufsize可能会被有意或无意地修改。我们当然不希望这种情况发生,所以可以这样改:

  const int bufsize=512;

  for (int index=0;index!=bufsize;++index){

4、尽量避免使用指针和数组

  指针和数组容易产生不可预料的错误,指针用于低级操作,容易产生和繁琐细节相关的错误。而且使用指针的语法规则还比较令人费解。

  数组最大的问题就是不能动态增长,必须要预先设定好数组的才长度。而且数组一经定义,就不允许再添加新元素了,如果需要添加新元素,程序员就要自己管理内存,

       即重新定义一个数组,再把旧数组的元素复制过去,同时还要时刻注意防止数组越界造成的“缓冲区溢出”等问题。

  现在许多有用的程序都可不使用数组或指针实现,现代C++采用Vector取代一般的数组,用迭代器取代指针,虽然指针本质上也是迭代器。看下面的代码:

  string word;

  vector text;

  while (cin>>word){

    text.push_back(word);

  }

       尽量封装入类中使用类。

5、分层开发慎用全局变量和静态变量

      lul 分层 :

                    1、类库层  (不用静态或全局)

                    2、模块框架层 (不用 或禁用全局或静态)

                    3、应用软件层  (只在此处用全局或静态)

6、内存管理

       基本数据类型做为容器,容存数值,容器中又分为两种 一种是 实体类型容器  一种是引用类型,程序各模块之间的关系是调用

或被调用关系。

        lul使用 规则:

       1、传入的参数要等到调用的黑盒模块执行完时才销毁,黑盒模块为一个函数或一个线程。

       2、黑盒模块传出的数据 不销毁,黑盒作为数据源,由调用者销毁。

       3、黑盒模块自管自己使用数据块,传入的不管,传出的只管生产。

 7、lib、dll规范

      lib 中可放全局或静态或函数实体或类定义,都可以,但尽量只放函数或类型定义,lib是加载入exe。

      dll  中可放全局或静态或函数实体或类定义,都可以,但是导出只用函数。lib引入的只是dll中的声明。

8、声明的定义坚守原则

      1、声明一定只在h头中,定义一定在cpp/c中;

      2、局部变量在需时才定义

9、版式风格

      1、打括号风格

           1、1  采用括起 在前句之后,收起的括号单独一行

           1、2  采用 括起 和 收起都占一行


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此间的年少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值