高质量C++/C编程指南阅读笔记(一)

本文档详细介绍了C/C++编程中的代码规范,包括头文件与定义文件的组织结构、代码风格建议、表达式及语句的编写准则、以及函数设计的最佳实践。

1.   头文件

    a)    头文件结构:

               i.         版权、版本、作者、时间等声明

              ii.         预处理快

             iii.         函数和类结构声明

    b)    引用头文件:

               i.         ifndef …. define endif避免头文件使用重复

              ii.         #include<>引用标准库 #include””引用非标准库头文件

             iii.         头文件只放声明,不放定义,函数声明与定义分开比较好

             iv.         不提倡全局变量,头文件尽量不出现extern int xx等

2.   定义文件

    a)    定义文件结构:

               i.         定义文件版权等信息

              ii.         对头文件引用

             iii.         程序实现体

3.   如果头文件比较多,可以将头文件统一于include目录,定义文件于source目录

4.   版式

    a)    函数声明及定义后空行 

    b)    函数体内逻辑相关语句不空行,其余空行

    c)    一个代码一做一件事情,定义一个变量,方便注释

    d)    If while for do 等独自一行,执行语句不接后,无论多少句,都家{}

    e)    尽量在定义变量时初始化变量

    f)     关键字,如const virtual inline if while for 等后空一格,突出关键字

    g)    函数名后不留空格,紧跟括号与关键字区别

    h)    ‘(‘  、‘,’ 、‘ ;’向前紧跟,’,’后留空格,’;’后如果仍有,后留空格

    i)      =、+=、+等二元符前后空格

    j)     !、~、++、--、&等一元符前后不空格

    k)    []、->、.前后不空格

    l)      较长for 及if 为了紧凑可适当去除个别空格  

   m)  {}上下对齐

    n)    代码行不适合太长,分行,操作符放在新行前面

   o)    *、&靠近变量,虽然语义上不直观,但不会引起误解

   p)    注释:

               i.         使用于:版本版权声明、函数接口说明、重要代码行或者段落提示

              ii.         代码注释一致性

             iii.         注释适度、恰当性

             iv.         位置放在右侧或者上方

              v.         代码较长,在段落结束处注释

   q)    类版式,public可以放在private前面,注重行为

   r)     标示符简短、明了、无仅靠大小写区分的变量

   s)    变量名字,名词或者形容词+名词

   t)     全局函数动词或者动词+名词 类函数仅有动词

   u)    避免直接数字编号型变量

   v)    常量全大写,中间下划线,静态前加s_,全局变量g_,类数据成员m_

5.   表达式及基本语句

   a)    运算符比较多,用括号

   b)    不同语言True、False不一定对应1、-1

   c)    整型变量与0比较不与布尔类型比较

   d)    指针变量与NULL比较

   e)    if内比较的两者可以将待比较者放在后面,防止被意外赋值

   f)     多重循环,长循环放在最里面,减少CPU跨切循环次数

   g)    循环内有判断,且循环次数很大,可以将判断置外,舍弃简洁,但效率较高

   h)    区间用半开半闭

   i)      switch语句加default

   j)     const 有数据类型且编译器会检查,定义常量尽量使用const(c++中)

   k)    类的const数据成员只能在类初始化中实现

   l)      在类中定义全类不变得整数范围内常数可以用枚举类型

6.   函数设计

   a)    C中参数及返回值传递:值传递及指针传递,c++新增引用传递

   b)    函数参数书写完整

   c)    如果参数是指针,为防止在函数体内被修改,加const

   d)    以值传递,宜修改为const &引用传递,减去临时对象的构造和析构过程

   e)    不要省略返回值类型

   f)     函数入口处用assert断言检查合法性

   g)    引用在创建时必须初始化,指针任何时候都可以初始化

   h)    不能有空引用,指针可以NULL

   i)      引用初始化后不能改变引用关系,指针可以

   j)     引用其实就是原数据本身,既不是其指针,也不是其拷贝

《高质量C++/C编程指南》读书笔记,未完待续。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值