C/C++ 编程规范总结-1

简介: C/C++ 编程规范总结

前言

编码规范是成为一个优质程序员的重要一课,它是编程的样式的模板。


为了跟大佬们一样写出简洁、可维护、可靠、可测试、高效、可移植的代码,我参考网上的资料做了一个归类。


一、编程规范的作用

1.提高源程序的可读性和可维护性


2.降低错误的机会


3.提高源代码可重用性和质量


二、规范的三种形式

1.原则:编程时应该坚持的指导思想


2.规则:编程时必须遵守的约定


3.建议: 编程时必须加以考虑的约定


三、规范的内容

1. 基本原则

原则1-1

首先是为人编写程序,其次才是计算机。

说明:这是软件开发的基本要点,软件的生命周期贯穿产品的开发、测试、生产、用户使用、版本升级和后期维护等长期过程,只有易读、易维护的软件代码才具有生命力。


原则1-2

保持代码的简明清晰,避免过分的编程技巧。

简单是最美。保持代码的简单化是软件工程化的基本要求。不要过分追求技巧,否则会降低程序的可读性。


原则1-3

所有的代码尽量遵循ANSI C标准

所有的代码尽可能遵循ANSI C标准,尽可能不使用ANSI C未定义的或编译器扩展的功能。


原则1-4

编程时首先达到正确性,其次考虑效率。

编程首先考虑的是满足正确性、健壮性、可维护性、可移植性等质量因素,最后才考虑程序的效率和资源占用。


原则1-5

避免或少用全局变量

过多地使用全局变量,会导致模块间的紧耦合违反模块化的要求


原则1-6

尽量遥免使用GOTO语句


原则1-7

尽可能复用、修正老的代码。

尽量选择可借用的代码,对其修改优化以达到自身要求。


2. 布局

规则2-1-1

遵循统一的布局顺序来书写头文件#ifmndef 文件名 H(全大写)

#defie

文件名 H

其它条件编译选项

#include(依次为标准库头文件、非标准库头文件)常量定义

全局宏

全局数据类型

类定义

模板 (template)(包括C++中的类模板和函数模板) 全局函数原型

#endif


规则2-1-2

遵循统一的布局顺序来书写实现文件

文件头注释

#include(依次为标准库头文件、非标准库头文件)常量定义

文件内部使用的宏

文件内部使用的数据类型

全局变量

本地变量(即静态全局变量)

局部函数原型

类的实现全局函数局部函数


规则2-1-3

使用注释块分离上面定义的节

3bda67c5998510ae99be69cb6173ac70_3d5c4b8df503410b8c05f1ce7b84caa4.png

规则2-1-4

头文件必须要避免重复包含

46b29412cd34a28fcc3c0a7fc33f9b1f_caa3089e2d754a94aa3630dd64b80e5a.png

规则2-1-5

包含标准库头文件用尖括号 < >


包含非标准库头文件用双引号 " "

f01ad1d73d0cda4131f5851721b223f2_c6b97dcfe72f450d9cb92b183f0d14e4.png

规则2-1-6

遵循统一的顺序书写类的定义及实现


类的定义(在定义文件中) 按如下顺序书写:


  • 公有属性,公有函数
  • 保护属性,保护函数
  • 私有属性,私有函数

类的实现(在实现文件中) 按如下顺序书写:


  • 构造函数,析构函数
  • 公有函数
  • 保护函数
  • 私有函数

规则2-2-1

程序中一行的代码和注释不能超过80列

包括空格在内不超过80列


规则2-2-2

if、 else、 else if、 for、while、do等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{ }


d474877083f49b212ab7528c1231f5c3_2729a403c277483c95580c288fd8ba18.png


规则2-2-3

结构型的数组、多维的数组如果在定义时初始化,按照数组的矩阵结构分行书写。

493f618761ff9b6c441876a9f1b0ebcd_33e184e22e324519b00ebb9f011f1a78.png

建议2-3-1

在switch语句中,每一个case分支和default要用{ }括起来,{ }中的内容需要缩进。


f2dc48499ab0f2e7bd150eb4b1d612c7_0af181f2642c4cefb7c594604d67bf1e.png


规则2-4-1

不同逻辑程序块之间要使用空行分隔

0b2bf5ab99a86ae46d721775d65f08a1_c5064bf448ab4adebc102c6d06e00d8f.png

规则2-4-2

多元运算符和它们的操作数之间至少需要一个空格。

5cb6bbd40c770e9ea5017d5cf65c9f26_b36ce13962564a9dbd4f393b9d1bde40.png

规则2-4-3

关键字之后要留空格


if、for、while等关键字之后应留一个空格再跟左括号 ’(’,以突出关键字


另外 sizeof 是关键字,strlen 是函数


规则2-4-4

函数名之后不要留空格


函数名后紧跟左括号 ’(’,以与关键字区别


规则2-4-2

不是行结束符号时其后要留空格

d99a8a64a02900639acd15aa25453459_60c56fb8320f4e07ba159b5c5f7e19f1.png



规则2-4-6

注释符与注释内容之间要用一个空格进行分隔

78e2bb94d9ce8d7f489ea9a498030142_3ef84576f24841799666801baebe6e6a.png

C/C++ 编程规范总结-2

https://developer.aliyun.com/article/1507971

相关文章
|
8天前
|
自然语言处理 算法 Java
C/C++ 程序员编程规范之注释
C/C++ 程序员编程规范之注释
48 1
|
8天前
|
存储 算法 测试技术
|
8天前
|
程序员 开发工具 C++
C/C++ 程序员编程规范之排版
C/C++ 程序员编程规范之排版
35 1
|
9月前
|
编译器 C++
【C++】实用编程规范与建议
C++ 相关,比较实用的 防止疏漏出错的编码规范与编码建议
121 0
|
10月前
|
存储 设计模式 算法
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
|
程序员 C++ C语言
《C++编程规范:101条规则、准则与最佳实践》——导读
许多糟糕的编程规范都是由一些没有很好地理解语言、没有很好地理解软件开发或者试图标准化过多东西的人制定的。糟糕的编程规范会很快丧失可信度,如果程序员不喜欢或者不同意其中一些糟糕的准则,那么即使规范中有一些合理的准则,也可能被不抱幻想的程序员所忽略,这还是最好的情况,最坏的情况下,糟糕的标准可能真会被强
1795 0