俗话说:“字如其人。”,我说:“代码如其人。”
养成规范的代码风格,可以有效地减少bug的产生,提高阅读程序的效率,使程序更易被了解。
在开发当中,代码风格是一名程序员基本功力的表现,可以说是非常重要的。
在竞赛当中,整齐的代码可以缓解环境带来的压力,更易发现其中的逻辑错误,是提高成绩的有效方法。
参考了Menci学长的博客,综合我的编程经历,总结出一下代码规范。
头文件("include")应放在程序的最开头,能使用 “<>” 包含的,全部使用 “<>” 包含,其余才情况使用双引号。
"include" 和具体头文件之间应有一个空格。
不要使用 "using namespace std;" 。
不要定义宏,使用 "const" 或者 “typedef” 代替。
统一使用一个Tab或者四个空格进行缩进。
所有函数均需要正确返回值,不能用 "int" 来代替 "void" 或者其余类型。
函数名后应加一个空格,再接参数。
大括号应与函数名在同一行,同时与函数的参数有一个空格。
调用函数时,多个参数应用一个空格隔开。
举个栗子:
void func (int i, int j) { //something}
等号、加号、减号等各种符号左右应各有一个空格。
一行有多个并列语句时,应用空格隔开。
头文件,变量定义,函数的各个块之间应有一个空行隔开。
一个函数中实现不同内容时也应有一个空行隔开
举个栗子:
#include <iostream>#include <cstdlib>const int N = 1e5 + 5;int n, m, k;int func (int i, int j) { //something}int main () { cin >>n >>m >>k; for (int i = 1; i <= n; ++i) { //something } int ans = max(n, m, k); cout <<ans <<endl; return 0;
循环变量使用 i, j, k, p, q 等。
禁止使用全局变量。
不直接使用常数,应将其定义为常量。
常量命名为大写英文缩写。
变量命名不能重复(函数内外也不行)。
变量用小写英文缩写命名。
指针变量与引用变量中的 “*” 和 “&” 应靠近类型名称,不能靠近变量名。
(这点仅针对开发编程)
只能使用 “class”,而不能使用 “struct”。
“class” 中的 public 类型应放在最前面。
“class” 中的变量只能是 private 或者 protected 类型,可以设有更改和查询变量的函数,但查询函数要有 “const” 修饰。
【信息学竞赛从入门到巅峰】,一个专注于分享OI/ACM常用算法及知识的公众号。