代码规范整理

1. 变量声明和初始化

  • 同一行不可声明多个变量;
  • 局部变量声明和初始化置于一块;一定要初始化,防止内存泄漏等问题;

2. 枚举

  • 尽量使用枚举,而不是静态、宏定义;原因:

     #define宏定义没有类型检查和安全检查,所以会导致边际效应,出现不可预知的错误;在预处理阶段对所定义的常量进行替换展开
     const在编译阶段进行类型检查和安全检查;在编译运行阶段
     enum在编译阶段进行类型检查,但是只能进行整形的定义;程序运行时起作用
    
  • 默认要提供一个0值枚举量;None = 0

3. 空格

  • 变量声明和代码间有一行空格;
  • 运算符等符号两侧空一格;
  • 逗号右侧空一格;
  • while、if等关键字与括号之间空一格;
  • 大括号{}与相关代码置于下一行

4. 注释

  • 应该使用 // 注释方式,多行注释也尽量使用;

  • 将注释缩进与描述的代码同一级;

  • 英文注释时,首字母大写的句子

  • 内联代码(即类内的)注释:需在之前放置一个空行;

  • 注释为结构体,类成员变量时,可以放在代码后面,同一行;

  • 头文件注释:

     /**********Header File************\
     	功能描述
     \************************************/
    
  • 类注释

     	// 类名
     	// 类描述
    

5. 头文件

  • 避免同一个头文件被包含(include)多次;尽量使用#ifndef控制唯一性

      使用#ifndef / #endif或#pragmaonce
      ifndef:内容完全相同的文件(指同一个)
      pragmaonce: 物理上的同一个,而不是内容
    
  • 头文件包含顺序

      cpp自己的h
      c系统文件
      c++系统文件
      其他库h
      本项目的h
    

6. 作用域·

  • 禁止使用 using namespace
  • 如果一个类只有静态成员函数,他应该用名字空间来代替。如果有全局函数,他应该放到名字空间里

7. 命名规范

	类		各首字母大写,名词	 calss ShowNumber()
	枚举		各首字母大写
	函数方法	各首字母大写
	结构体		全大写,以_分隔单词
	宏、常量		全大写,以_分隔单词
	参数变量	驼峰命名
  • 匈牙利命名法

      布尔值		f-
      HANDLE		h-
      WORD		dw-
      char、TCHAR		ch-
      PWSTR		psz
      char[]		sz-
      指针		p-
      数量		c-
      类成员变量		m_
      类静态变量		s_
      全局变量		g_
    

8. 指针

  • 声明指针时初始化,释放时赋予NULL;
  • 待补充填写

9. 常量

  • 全大写,以_分隔

  • 一定使用const

      宏定义#define不检查类型,而const会强制类型检查;
    
  • 应该在传入和返回的参数添加const,表明参数不改变的意图

10. 类型转换

1.强制类型转换 static_cast
隐式转换:比如intfloatdoublecharenumint之间的转换等

double a = 1.999;
int b = static_cast<double>(a); //相当于a = b ;

2.处理无关类型转换 reinterpret_cast 
允许将任何指针转换为任何其他指针类型

int *pi;
char *pc = reinterpret_cast<char*>(pi);
//他并没有进行二进制的转换,pc指向的真实对象其实还是int
!!不能对DWORD和指针进行相互转换

11. 字符串

  • 宽字符类型,使用wchar_t,PWSTR,PCWSTR;不要使用TCHAR版本的类型
  • 创建Unicode字符串时,不要使用TEXT宏,应该使用L”字符串值“;

12. 数组

  • 数组初始化,使用{} 将数组置于零,比{0} 性能高;

13. 函数

  • 函数的参数顺序为: 输入参数在先, 后跟输出参数
  • 所有按引用传递的参数必须加上 const
  • 一定要写构造函数和析构函数;良好的习惯;
  • 禁止声明public 数据成员
  • 在构造函数中使用初始化,而不是赋值操作;
A::A(): 
m_a(1)
m_b(2)
{
}
按照类声明的顺序初始化
  • 析构函数,处理资源清理工作,如:delete释放资源等;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值