"尽量不要让一个函数的代码超过50行

有些读者可能看到过这样的描述,但是自己做项目的时候,有很多函数(50多行),会怀疑这样写有错吗?

那么,一个函数可以超过50行吗?让今天我们来谈谈函数代码的行数。

1、关于代码行数的问题

多少行代码适合一个函数?什么超过1000行的代码有什么问题?在各种编程规范中,并没有强制要求功能代码的行数要低于* *行。你的项目所有函数都在50行代码以下,这是可以的。反过来,如果你有一个函数(只有主函数)的代码超过10000行,如果代码没问题,可以编译通过,也可以照常工作。我们通常看到一个函数的代码尽量不要超过50行。它实际上与代码的结构和模块化有关。很多情况下,代码会超过50行,甚至上千行。

2、模块化代码行较小。

代码为什么要模块化?

这个问题就好比:图书馆的书为什么要分类?

因为我们的代码要实现各种功能,代码模块化后,会更便于我们后期的管理、移植和维护。

代码模块化是编程中的一个重要思想。用模块化思维,开发项目会让你事半功倍。

可以在这里参考之前分享的文章《嵌入式开发中的两点编程思想》。

回来,为什么模块化代码这么少行?

代码模块化就是把要实现的小功能模块用一个函数封装起来,这也涉及到本文提到的函数代码行数少的问题。

你会发现很多底层驱动、中间层、应用层的代码其实都是用模块化编程的。

例如,底层驱动程序库函数:

如RTOS模块化代码:

看这些实现模块化的代码,你会发现每个函数的行数并不多,基本保持在50行。甚至有些功能代码只有一行:

int 16 u OS VERSION(void){ return(OS _ VERSION);}

当然,并不是所有的模块化代码都小于50行,有的是100行,有的是200多行,但总体来说,模块化代码的数量还是比较少的。

3、具有多行代码的函数

模块化代码的功能通常少于50行。但是在实际编程中,实际上有很多超过50行的函数。比如一些复杂的算法、通信协议、应用代码等。都可能超过50行。让这么说吧,像用一些条件判断if else,或者switch case,再多几个条件(比如25),基本上这个函数代码就会超过50行。像一些功能代码,会用到很多局部变量,会为几个变量定义50多行功能代码:

一般来说,超级多行函数常见于业务逻辑应用代码中。

有时,当我们编写一个应用程序代码时,我们可能会不知不觉地(复制和粘贴)数百行代码。(主功能实现所有功能,是不是像认识一样?)

我我以前做过这个,专门找几年前写的代码,一个有几千行的触摸屏处理函数:

这个函数使用iElse处理大量的触摸键信息(数百次触摸),还包含一些指令、数据分析和分类。这个函数的代码行注定不会少于50行。(当然,这个千行的功能,肯定有让步的空间。减少三分之一应该没问题。)

:最后

一个超过1000行代码的函数理论上是可能的。但是,在实际发展中,我们应该尽量避免超长线路功能并且尽量控制在50 ~ 80行代码。"超长线路功能在实际开发中也很常见。如果函数太多,代码要尽可能标准化,比如代码命名、对齐、注释等。因此,一个功能代码中有几个功能,所以不要不要怀疑自己。While 压缩& gt;代码行,规范的代码就可以了。