编码规范 (二)

原创 2013年12月03日 23:41:45

编码规则规范

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  采用 括起 和 收起都占一行


java性能编码规范整理二

接上篇  java性能编码规范整理一 12、对于高频度使用的对象,需要进行单独优化处理给以重用13、在代码开发中,需要根据应用场景合理选择集合框架中的集合类,应用场景可按单线程和多线程来划分,也可按频...

JavaScript 风格指南/编码规范(Airbnb公司版)二

提升 变量声明在范围内提升,但赋值并没有提升 // we know this wouldn't work (assuming there // is no notDefined global va...
  • suiye
  • suiye
  • 2014年11月18日 12:31
  • 536

Android编码规范(二)--资源等

原文:http://www.cnblogs.com/xiongbo/archive/2011/08/15/2098130.html Android开发规范 一、Android编码规...

编码规范系列(二):Eclipse Checkstyle配置

原文地址:http://chenzhou123520.iteye.com/blog/1627618 上一篇介绍了《编码规范系列(一):Eclipse Code Templates设置》,这篇主要介绍...

ExtJS学习笔记二:编码规范

编码规范在所有类、命名空间(namespace)和文件名中使用一致的命名约定,有助于保持代码的良好结构和可读性。...

编码规范系列(二):Eclipse Checkstyle配置

上一篇介绍了《编码规范系列(一):Eclipse Code Templates设置》,这篇主要介绍Eclipse中Checkstyle的配置。关于Checkstyle,引用百度百科的介绍如下:Chec...

GBK 汉字内码扩展规范编码表(二)

GBK 汉字内码扩展规范编码表(二)       全国信息技术标准化技术委员会        汉字内码扩展规范(GBK)     Chinese Internal Code Specification...
  • sunvince
  • sunvince
  • 2011年03月28日 15:30
  • 68765

CSS编码规范(二)

属性编写顺序 推荐的

编码规范系列(二):Eclipse Checkstyle配置

上一篇介绍了《编码规范系列(一):Eclipse Code Templates设置》,这篇主要介绍Eclipse中Checkstyle的配置。关于Checkstyle,引用百度百科的介绍如下:Chec...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编码规范 (二)
举报原因:
原因补充:

(最多只允许输入30个字)