写在前面
本文针对笔者目前刷题以及面试需求对C++代码规范进行简要梳理总结。
实习和工作过程中必然会有更多涉及工程的规范要求,后续会跟进,但不包含在本文中。
本文参考知乎用户 izlyforever 代码规范、CSDN用户 jaronho 的总结以及大神 pansz 的回答。
编码要求
- 普通代码:正确、可行、可读、通用
- Core代码:正确、高效、通用、可读
注意点
- tab用于缩进,强烈抵制四个空格代替Tab
main
函数必须在整个程序末尾- 尽量使用STL减少代码量,尽量使用
emplace_back
取代push_back
- 尽量不使用全局变量
- 局部变量在用时定义
- 尽量用/* */进行注释,避免使用//
命名
1、结构体/类
使用大驼峰命名法,不包含下划线。
struct MyStruct {
}
class MyClass {
}
2、函数/变量
使用小驼峰命名法,可以使用下划线。
全局变量补充前缀 g_
,静态变量补充前缀 s_
。
//全局变量
int g_numA = 0;
void myFunc() {
//普通变量
int numB;
//静态变量
static int s_numC;
}
常量
大写字母
int MAX_NUM = 2 ** 32 - 1;
空格
1、前后必须都有空格:双目运算符,三目运算符。
if (a == b + c) {
a = b > c ? b : c;
}
2、后加前不加:逗号。
int a = 1, b = 2;
3、括号不换行且左括号前有且仅有一个空格。
void myFunc() {
}
空行
独立的代码块、头文件块、函数、成员函数、结构体、类,全局变量块之间必须用空行隔开。