嵌入式C语言编程规范--函数(个人规约)

原创 2018年04月16日 16:48:05
函数设计的精髓:整洁,同时把代码有效组织起来。
整洁要求:代码简单直接、不隐藏设计者的意图、用干净利落的抽象和直截了当的控制语句将功能实现。

代码的有效组织包括:逻辑层组织和物理层组织两个方面。逻辑层,主要是把不同功能的函数通过某种联系组织起来,主要关注模块间的接口,也就是模块的架构。物理层,无论使用什么样的目录或者名字空间等,需要把函数用一种标准的方法组织起来。设计良好的目录结构、函数名字、文件组织等,这样可以方便查找。

1、一个函数仅完成一项功能;

说明:如果功能完成过多,会让使用者难以理解,使用起来不方便。

2、 重复代码应该尽可能提炼成函数;

说明:重复代码提炼成函数可以带来维护成本的降低。

3、 避免函数过长,新增函数不超过50行

说明:本规则仅对新增函数做要求,对已有函数修改时,建议不增加代码行。过长的函数往往意味着函数功能不单一,过于复杂;业界普遍认为一个函数的代码行不要超过一个屏幕,避免来回翻页影响阅读;一般的代码度量工具建议都对此进行检查。

4、 避免函数的代码块嵌套过深,新增函数的代码块嵌套不超过4层;
说明:本规则仅对新增函数做要求,对已有的代码建议不增加嵌套层次。

函数的代码块嵌套深度指的是函数中的代码控制块(例如:if、for、while、switch等)之间互相包含的深度。每级嵌套都会增加阅读代码时的脑力消耗,因为需要在脑子里维护一个“栈”(比如,进入条件语句、进入循环„„)。应该做进一步的功能分解,从而避免使代码的阅读者一次记住太多的上下文。

5、废弃代码(没有被调用的函数和变量)要及时清除;

说明:程序中的废弃代码不仅占用额外的空间,而且还常常影响程序的功能与性能,很可能给程序的测试、维护等造成不必要的麻烦。

6、函数不变参数使用const;

说明:不变的值更易于理解/跟踪和分析,把const作为默认选项,在编译时会对其进行检查,使代码更牢固/更安全。

7、函数的参数个数不超过5个;

说明:函数的参数过多,会使得该函数易于受外部(其他部分的代码)变化的影响,从而影响维护工作。函数的参数过多同时也会增大测试的工作量。函数的参数个数不要超过5个,如果超过了建议拆分为不同函数。

8、在源文件范围内声明和定义的所有函数,除非外部可见,否则应该增加static关键字;

说明:如果一个函数只是在同一文件中的其他地方调用,那么就用static声明。使用static确保只是在声明它的文件中是可见的,并且避免了和其他文件或库中的相同标识符发生混淆的可能性。

9、不要省略返回值的类型,如果函数没有返回值,那么应声明为void类型;

说明:C语言中,凡不加类型说明的函数,一律自动按整型处理。如果不注明类型,容易被误解为void类型,产生不必要的麻烦

10、对于有返回值的函数,每一个分支都必须有返回值

说明:为了保证对被调用函数返回值的判断,有返回值的函数中的每一个退出点都需要有返回值

11、如果返回值表示函数运行是否正常,规定0为正常退出,不同非0值标识不同异常退出。避免使用TRUE或FALSE作为返回值

12、必须对所调用函数的错误返回值进行处理

说明:函数返回错误,往往是因为输入的参数不合法,或者此时系统已经出现了异常。如果不对错误返回值进行必要的处理,会导致错误的扩大,甚至导致系统的崩溃

版权声明:本文为博主原创文章,博主允许 可以转载。 https://blog.csdn.net/qq_39815416/article/details/79962562

开发实战中的C语言--基础篇

-
  • 1970年01月01日 08:00

嵌入式C语言编程规范(个人规约)

0规范制定说明 0.1箴言 技术人员设计程序的首要目的是用于技术人员沟通和交流,其次才是用于控制CPU的。程序的生命力在于用户使用,程序的成长在于后期的维护及根据用户需求更新和升级功能。如果你的程序只...
  • zhanglianpin
  • zhanglianpin
  • 2015-06-18 09:51:38
  • 5995

嵌入式软件c编程规范

  • 2012年07月21日 17:56
  • 1.48MB
  • 下载

嵌入式C语言编程规范--排版与格式(个人规约)

1、相对独立的程序块之间、变量说明之后必须加空行;if (!valid_ni(ni)) { // program code ... } //空行 repssn_ind = ssn_...
  • qq_39815416
  • qq_39815416
  • 2018-04-16 18:25:20
  • 11

嵌入式C语言编程规范--命名规则(个人规约)

通用命名规则:标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解1. 移植代码和修改部分代码时,保持原命名风格;2. 目录名、文件名、函数文件名、函数参...
  • qq_39815416
  • qq_39815416
  • 2018-04-16 11:18:26
  • 6

(一)阿里巴巴JAVA编程规范之编程规约

(一) 命名规约 1. 【强制】所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例: _name / __name / $Object / name_ / name...
  • qq_19701185
  • qq_19701185
  • 2017-02-13 21:20:18
  • 2323

阿里巴巴编程规范之编程规约

(一) 命名规约 1. 【强制】所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例: _name / __name / $Object / name_ / ...
  • LuoJun_
  • LuoJun_
  • 2017-08-11 09:26:19
  • 331

嵌入式C语言编程规范--变量、常量、宏(个人规约)

一. 变量1. 一个变量只有一个功能,不能把一个变量用作多种用途说明:一个变量只用来表示一个特定功能,不能把一个变量作多种用途,即同一变量取值不同时,其代表的意义也不同。示例:具有两种功能的反例   ...
  • qq_39815416
  • qq_39815416
  • 2018-04-16 15:48:39
  • 4

嵌入式C语言编程规范--常见的通用缩写(个人规约)

嵌入式C语言编程规范中,常见的通用缩写如下所示:
  • qq_39815416
  • qq_39815416
  • 2018-04-16 10:27:17
  • 3

编写优质嵌入式C程序

前言:这是一年前我为公司内部写的一个文档,旨在向刚踏入嵌入式编程的年轻工程师们介绍如何在裸机环境下编写优质嵌入式C程序。本文通过一些我遇到的、同事遇到的或者一些前人遇到的典型案例来分析嵌入式C中的一些...
  • zhzht19861011
  • zhzht19861011
  • 2015-05-05 21:26:30
  • 35025
收藏助手
不良信息举报
您举报文章:嵌入式C语言编程规范--函数(个人规约)
举报原因:
原因补充:

(最多只允许输入30个字)