c++编码规范
c++项目编码中的编码规范,防止因代码书写问题带来的编译或运行上的错误,提示代码的美观性合实用性
优秀的邓宗磊
这是一个优秀的人呢
展开
-
c/c++全局变量与局部变量取舍,全局变量通用性强,局部变量保密性和稳定性强
c/c++全局变量与局部变量取舍,全局变量通用性强,局部变量保密性和稳定性强:全局变量的特点:所有函数均可以访问全局变量,省去传递参数的流程,正因如此,数据容易被访问导致数据不可靠。分析:程序要保持数据的完整性,就要避免对数据进行不必要的访问,通常情况下应该使用局部变量,只有需要数据是才进行数据传递,不应该不加区分的使用全局变量来使数据可用。大环境:在面向对象编程中为了更好的封装往往也需要对数据进行隔离处理,比如类成员数据将访问权限设置为private或protected,然后设置getter和原创 2021-11-28 15:23:10 · 442 阅读 · 1 评论 -
编码笔记,内存管理方式,动态内存分配
内存管理:内存的分配方式:1、静态存储区:内存在编译时已经分配好,在整个程序的运行器件都存在。如:全局变量,static变量。2、栈上分配:执行函数时,函数内局部变量的储存单元后可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置与处理器的指令集中,效率很高但内存容量有限。3、堆上分配:也叫动态内存分配。程序运行时使用new或malloc申请任意大小的内存,程序员自己负责使用free或delete释放内存。动态分配内存的生命周期由程序员决定,非常灵活,问题和坑最多。常见原创 2021-10-28 22:09:34 · 128 阅读 · 0 评论 -
指针和引用的比较
指针与引用的比较:int m;int &n = m;引用n相当与对象m的别名(绰号),对n的操作就是对m的操作,既不是拷贝也不是指针,n就是m。引用的规则:1、引用被创建的同时就必须被初始化,指针可随时初始化。2、引用没有Null引用,引用必须与合法的储存单元关联,指针可为Null3、引用被初始化后无法改变其引用关系,指针则可以随便修改指向的内存。引用的功能:传递函数的参数和返回值。引用传递的性质像指针传递,但使用方式像值传递,引用传入相比值传入有指针传入的优点:功能十分强大,原创 2021-10-28 22:08:31 · 545 阅读 · 0 评论 -
编码笔记,断言,程序版本,debug和release
断言:程序一般分为debug版本和release版本,debug版本用于内部调试,release版本用于发行给用户使用。断言assert时只在debug版本中起作用的宏,用于检查“不应该”发生的状况,运行中assert的参数如果为假,程序就会终止,一般还会出现提示对话,说明声明地方引发了assert。例子:#define void func(){assert(true);assert(false && true);}程序员可以吧assert看出是一个在任何系统状态下都可以原创 2021-10-28 22:07:26 · 226 阅读 · 0 评论 -
编码笔记,函数的设计,参数,返回值,函数体
函数设计:函数作为程序基本功能单元,其接口设计和内部实现的规则十分重要。函数接口双要素:参数与返回值。参数的建议(规则):1、参数需完整,不可懒惰只写类型不写名称,无参数则用void填充如:void SetValue(int value); float GetValue(void);2、命名需恰当,顺序要合理拷贝函数StringCopy为例:两个参数需要命名区分源参数与目的参数,一般以目的参数在前,源参数在后。如:void StringCopy(char *strDestination, c原创 2021-10-28 22:05:01 · 200 阅读 · 0 评论 -
编码笔记,常量,const和#define
常量:程序中直接出现的数字与字符串会带来那些麻烦?1、程序可读性变差,程序员与用户均难以直接理解数字和字符的含义,来源;2、程序很多地方需要输入相同的字符串时,难以保证不出错,代码体量较大时,则会变成“必然出错”。3、当数字与字符串需要被修改时则需要同时在很多地方修改,难以维护,出错频繁。常量的定义方法:#define和const相互比较:const优与#define原因:1、const有数据类型,可被编译器进行类型安全检查并在其作为参数时提高安全性;宏常量只是字符替换,隐患明显。2、调试原创 2021-10-28 22:03:46 · 130 阅读 · 0 评论 -
编码笔记,循环语句的写法
循环语句:提高效率与降低复杂性c/c++中for使用频率最高,while其次,do少见建议:1、多重循环中,需尽可能将循环次数最多的循环放在最内层,将循环次数最少的放在最外层,减少CPU跨切循环层的次数以提高效率。2、如果循环体中存在逻辑判断且循环次数很大,宜将判断语句移到循环体外,因为在循环体中进行的判断打断了循环体的流水线作业,使得编译器不能对循环进行优化处理,降低了效率,如果循环次数非常大,则需要让循环体专心执行作业而将判断语句尽可能移出到循环体外部。for语句建议:1、不可在for循环原创 2021-10-28 22:02:22 · 172 阅读 · 0 评论 -
编码笔记,表达式,基本语句的写法
表达式和基本语句:运算符优先级:建议:1、如果代码行中运算符比较多,用括号确定表达式的操作顺序。复合表达式:a = b = c = 0;好处是:1、书写简介,2、提高编译效率建议:1、不要编写太复杂的复合表达式。如:i = a > b && c < d;2、不要有多用途表达式。如:d = (a = b + c) + r;//求a又求d,不如拆分两行3、复合表达式不能与数学表达式混淆如:if(a < b < c)并不表示if((a < b)原创 2021-10-28 22:01:33 · 282 阅读 · 0 评论 -
编码学习笔记,变量,类的命名规则
命名规则:1、直观可读,望文生义,最好用英文单词组合,切忌汉语拼音2、标识符:形容词+名词,“min_length && max_num”3、命名与所用的操作系统或开发工具保持一致,Windows采用大小写混排,AddChild,Unix采用小写加下划线,add_child,不混用4、程序中不要出现仅靠大小写区分的标识符5、程序中局部变量与全局变量标识符不应完全相同6、变量名应使用名词或名词+形容词,如float value;float oldValue;7、全局函数的名字应原创 2021-10-28 21:59:48 · 555 阅读 · 0 评论 -
编码学习笔记,空行,代码行,空格,对齐,拆分,修饰符,注释,类版式
优秀的程序版式:空行的作用:分割段落,使程序布局清晰,空行不会浪费内存,但打印时会多消耗纸张。建议:1、每一个类声明后,函数定义结束后都要加空行。2、函数体内,逻辑上密切相关的语句之间不加空行,其它地方则加空行。代码行:建议:1、一行代码做一件事情:定义一个变量;写一条语句;//写一条注释2、if、for、while、do等语句独占一行,执行语句不得紧跟其后,不论执行多少语句都要加{},防止书写失误。3、定义变量后立即初始化或在最近的地方初始化,防止忘记初始化带来程序错误(安全明原创 2021-10-28 21:58:27 · 980 阅读 · 0 评论 -
编码笔记,c/c++文件结构
c/c++文件结构头文件:保存程序的声明源文件:保存程序的实现,即定义1。版权声明/******/头文件结构:三部分1、头文件开头处的版权和版本声明2、预处理快3、函数和类结构声明建议:1、为了防止头文件被重复引用,应使用ifndef/define/endif结构产生预处理块2、<>包含标准库头文件3、“”包含非标准库头文件4、头文件只存放声明不存放定义c++中类成员函数声明时定义会变成内联函数,书写方便但风格不一致,弊大于利,故无论函数体多小都建议将声明和原创 2021-10-28 21:55:35 · 226 阅读 · 0 评论