代码就是程序员的面子,不管是在工做中在电脑上写程序代码仍是在面试时在纸上写演示代码咱们都但愿写出整洁,优雅的代码。特别在工做中当咱们碰到须要维护别人的代码,或者是多人参与一个项目你们一块儿写代码的时候,若是碰到一些丑陋的代码,咱们还要看懂而且修改它的时候,那种难受,确定会让咱们回想起多年之前本身仍是新手程序员的时候,写下的那些丑陋的代码,而且深深内疚于将它们留给了咱们的后继者,不知道他们和它们是否还安好。因此,强调代码的规范性,写出整洁,优雅,可读性高的代码应该是成为一个合格的程序员的第一步。这里我就抛砖引玉,给你们一些关于C++代码规范性的一些建议。程序员
写代码的时候添加良好风格的空格和空行可使代码看上去更整洁,布局更清晰。面试
下面这段代码就会显得不优雅,看着有些别扭。函数
//很差的风格 void func (int a,int b,int c,int d) { if(a>=0) { if(a>=b&&c>=d) { int * x = & a; ...//doSomeThing(); } } }
咱们但愿将它改成这样。布局
//良好的风格 void func(int a, int b, int c, int d)//建议一,建议三 { if (a >= 0)//建议二,建议五 { if ((a>=b) && (c>=d))//建议四 { int *x = &a; //建议六 ...//doSomeThing(); } } }
还有这样的for语句for (i = 0; i < 5; i ++)
,就属于空格滥用了,应该改成for (i=0; i<5; i++)
。spa
当程序中没有空行时是这样的。指针
void func1() { while (condition) { ...//doSomeThing(); if (condition) { ...//doSomeThingRelated(); } else { ...//doSomeThingRelated(); } ...//doSomeThing(); } } void func2() { ...//doSomeThing(); }
而良好的空行不紧能使代码看上去更整洁,代码逻辑也会更清晰。代码规范
//良好的风格 void func1() { while (condition) { ...//doSomeThing(); if (condition) { ...//doSomeThingRelated(); } else { ...//doSomeThingRelated(); } ...//doSomeThing(); } } void func2() { ...//doSomeThing(); }
//很差的风格 void func() { int veryVeryLongWidth, veryVeryLongHeight; if ((veryVeryLongWidth > veryVeryLongHeight) || (veryVeryLongWidth < veryVeryLongHeight))doSomeThing(); }
过长的代码行不管是书写仍是阅读对人来讲都不是一个美好的体验,因此咱们建议以上代码要这样写。code
//良好的风格 void func() { int veryVeryLongWidth; int veryVeryLongHeight; if ((veryVeryLongWidth > veryVeryLongHeight) || (veryVeryLongWidth < veryVeryLongHeight)) { doSomeThing(); } }
class Book; class ReadBook; void Draw(); void DrawImage();
int value; void SetValueMode(int valueMode);
const int MAX = 100; const int MAX_LENGTH = 100;
int g_maxValue; static int s_maxValue; void Object::SetValue(int maxValue) { m_maxValue = maxValue; }
在C++中注释主要有两种,程序块的注释常采用“ /*…*/”,行注释通常采用“ //…”。注释主要用在3个地方。一、版权申明,二、函数说明,三、重要或复杂代码提示。对于前两种,每一个人或者每一个公司都有我的的规范和习惯,这里只要你们在公司内部统一便可。关于第三种给重要或复杂代码添加提示,咱们有一下几点建议。文档
if (flag) // 表示 flag 为真 if (!flag) // 表示 flag 为假
if (value == 0) if (value != 0)
也能够将0放在比较运算符前面。编译器
if (0 == value) if (0 != value)
这时若是将“==”写成“=”,编译器会报错。
if (x == 0.0) // 隐含错误的比较
修改成
const float EPSINON = 0.00001; if ((x>=-EPSINON) && (x<=EPSINON))
其中 EPSINON 是容许的偏差(即精度)。
if (p == NULL) // p 与 NULL 显式比较,强调 p 是指针变量 if (p != NULL)
做者:吴尼玛cs 连接:https://www.jianshu.com/p/ccc1b1992894 来源:简书 简书著做权归做者全部,任何形式的转载都请联系做者得到受权并注明出处。