打印
[学习笔记]

C语言函数编码规范

[复制链接]
1656|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LEDyyds|  楼主 | 2023-10-28 15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

原则2.1 一个函数仅完成一件功能。

说明:一个函数实现多个功能给开发、使用、维护都带来很大的困难。

原则2.2 重复代码应该尽可能提炼成函数。

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

规则2.1 避免函数过长,新增函数不超过50行(非空非注释行)。

说明:本规则仅对新增函数做要求,对已有函数修改时,建议不增加代码行。

规则2.2 避免函数的代码块嵌套过深,新增函数的代码块嵌套不超过4层。

说明:本规则仅对新增函数做要求,对已有的代码建议不增加嵌套层次。

规则2.3 可重入函数应避免使用共享变量;若需要使用,则应通过互斥手段(关中断、信号量)对其加以保护。

规则2.4 对参数的合法性检查,由调用者负责还是由接口函数负责,应在项目组/模块内应统一规定。缺省由调用者负责。

规则2.5 对函数的错误返回码要全面处理。

规则2.6 设计高扇入,合理扇出(小于7)的函数。

说明:扇出是指一个函数直接调用(控制)其它函数的数目,而扇入是指有多少上级函数调用它

规则2.7 废弃代码(没有被调用的函数和变量)要及时清除。

建议2.1 函数不变参数使用const。

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

建议2.2 函数应避免使用全局变量、静态局部变量和I/O操作,不可避免的地方应集中使用。

建议2.3 检查函数所有非参数输入的有效性,如数据文件、公共变量等。

说明:函数的输入主要有两种:一种是参数输入;另一种是全局变量、数据文件的输入,即非参数输入。函数在使用输入参数之前,应进行有效性检查。

建议2.4 函数的参数个数不超过5个。

建议2.5 除打印类函数外,不要使用可变长参函数。

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


使用特权

评论回复

相关帖子

沙发
tpgf| | 2023-11-7 09:35 | 只看该作者
函数之间的接口 要做好  否则容易出乱子

使用特权

评论回复
板凳
观海| | 2023-11-7 10:41 | 只看该作者
为什么要避免使用io操作呢

使用特权

评论回复
地板
wowu| | 2023-11-7 20:57 | 只看该作者
如果新增函数超过五十行一般如何处理呢

使用特权

评论回复
5
guanjiaer| | 2023-11-7 21:51 | 只看该作者
增加static关键字的作用是什么呢

使用特权

评论回复
6
八层楼| | 2023-11-7 22:22 | 只看该作者
废弃代码可以直接屏蔽掉吗

使用特权

评论回复
7
晓伍| | 2023-11-7 22:51 | 只看该作者
现在还支持函数的递归调用吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

103

主题

546

帖子

1

粉丝