当前位置: 首页 > news >正文

《高质量C/C++编程》读书笔记


好的编程风格

  • 将声明和定义分开写
  • ‘{’ ‘}’应独占一行并同一列
  • 尽可能不要使用全局变量
  • 定义变量的时候要同时初始化变量,防止出现不可预测的结果。
  • 修饰符‘*’和‘&’应更靠近变量名。eg:int * x,y,就不能唯一确定x和y的类型,应将 *和x离的更近一些。
  • 书写类的时候,将public(函数)放在private(数据)之前,更加清晰函数功能。
  • 在类定义中定义常量用枚举,不占用对象的存储空间。(有最大值且默认整型)
  • C中定义常量用define,C++中定义常量用define和const且多用const。
  • C++要调用C的函数可以用 extern"C" ,连接交换制定符号。

命名风格

  • windows系统下风格:大小写。eg:MyStrlen
    linux系统下风格:下划线小写。eg:my_strlen
  • 类名和函数名用大写字母开头。
  • 常量用全大写字母命名,下划线分割单词。eg:const NEW_NUM
  • 静态变量加s。eg:static s_age
  • 全局变量加g。eg:g_num

头文件

头文件可以加强类型安全检查,应包括:

  1. 版权和版本声明。
  2. 预处理:为了防止文件重复引用,使用ifndef/define/endif。
  3. 函数、类的声明。

循环语句

if语句

  • BOOL变量与0比较
    正确:
if(flag)
if(!flag)

错误:

if(0 == flag)
  • 浮点型变量与0比较
    正确:
if((x>=-EPSINON) &&(x<=-EPSINON))

错误:

if(0 == x)
  • 指针变量与0比较
    正确:
if(NULL == p)
if(NULL != p)

错误:

if(p)
if(0 == p)

for语句

  • 取值采用"半开半闭"
for(i=0; i<N ; i++)//间隔为N 循环N次 ;简洁明了
for(i=0; i<=N; i++)//间隔为N-1 循环N次; 

switch语句

  • 每个case语句后不要忘记加break,避免多个分支语句重叠,不要忽略default语句分支。

函数

  • 功能函数结果返回值建议用数字表示,增强可移植性。
  • 正确的值用参数返回,错误的值用return语句获得。
  • 函数调用时,返回值类型不可省略。eg:getchar()返回类型为int。
  • 函数定义时,用于排错处理的返回值不可省略,增加程序的健壮性。
  • 函数参数缺省只能在函数声明中。

指针

  • 野指针:没有初始化,释放指针时没有将其设置为NULL,指针操作超越了变量的作用域。
  • 用完指针不要忘记释放内存,并将其赋为NULL。(防止”野指针”)
  • new/delete 不是库函数,与sizeof()类似是个操作符。
    new相当于 构造函数+malloc(初始化+申请内存)
    delete相当于 析构函数+free (清除工作+释放内存)
  • 内存耗尽处理方法:
    1.判断指针是否为NULL,如果是则用return终止函数或者exit(1)终止坏的程序。
    2.为new和delete设置异常处理函数。

待更……


http://www.taodudu.cc/news/show-1944770.html

相关文章:

  • 【physx/wasm】在physx中添加自定义接口并重新编译wasm
  • excel---常用操作
  • Lora训练Windows[笔记]
  • linux基础指令讲解(ls、pwd、cd、touch、mkdir)
  • InnoDB 事务处理机制
  • 启明云端ESP32 C3 模组WT32C3通过 MQTT 连接 AWS
  • 高质量编程之编译警告级别
  • 高质量C编程00-汇总
  • C/C++ 高质量编程--内存,二重指针,指针的高级使用解析 3
  • 林锐高质量编程中的几道面试题
  • 人类高质量编程语言Delphi盛大发布2021新版本RAD Studio 11 Alexandria
  • 嵌入式C高质量编程培训心得笔记
  • 林锐:《高质量的C/C++编程》
  • 高品质编程
  • 高质量C++/C编程指南
  • 高质量编程
  • 学习笔记之高质量C++/C编程指南
  • c语言学生成绩管理系统(顺序表实现)
  • C语言中学生成绩管理系统
  • 数组实现c语言学生成绩管理系统
  • 学生成绩管理系统(C语言实现)
  • c语言学生成绩管理系统的设计,C语言学生成绩管理系统设计
  • c语言学生成绩管理系统讲解,C语言学生成绩管理系统(含源代码)精编.doc
  • C语言学生成绩管理系统设计 《C语言程序设计》实训报告
  • 课设——C语言学生成绩管理系统
  • c语言学生成绩管理系统总结
  • c语言课程设计学生成绩管理系统作业,C语言学生成绩管理系统课程设计word版
  • 学生成绩管理系统简单c语言源代码,c语言学生成绩管理系统源代码
  • c语言编写成绩管理系统代码,C语言学生成绩管理系统源代码
  • 基于c语言的学生成绩管理系统论文,C语言学生成绩管理系统论文
  • C语言实现学生成绩管理系统
  • c语言 学生成绩管理系统
  • C语言学生成绩管理系统(综合项目)
  • 学生成绩管理系统(C语言)
  • 在线反编译
  • swf反编译及修改