当前位置: 首页 > 科技观察

一个函数可以超过1000行吗?

时间:2023-03-12 02:41:43 科技观察

本文转载自微信公众号“strongerHuang”,作者strongerHuang。转载本文请联系强黄公众号。“一个函数的代码尽量不要超过50行。”有的读者可能看到过这样的描述,在自己做项目的时候,很多函数很多(50多行),他们会想这样写是不是错了?那么,一个函数能不能超过50行呢?今天就来讨论一下与函数代码行数相关的内容。1关于代码行数的问题一个函数多少行代码合适?代码超过1000行有什么问题?在各种编程规范中,并没有强制要求函数代码行数少于**行数。你项目的所有功能都在50行代码以内,还可以。反之,如果你有一个超过10000行代码的函数(只有main函数),如果代码没有问题,也可以正常编译运行。我们平时看到的“一个函数的代码尽量不要超过50行”,其实是和代码的结构化、模块化相关的。在很多情况下,代码会超过50行,甚至数千行。2代码模块化代码行数少。为什么要对代码进行模块化?这个问题就像:图书馆的书为什么要分类?因为我们的代码需要实现各种功能。代码模块化后,会方便我们管理、移植和后期维护。代码模块化是编程中的一个重要思想。采用模块化思维,可以让你在开发项目时事半功倍。这里可以参考之前分享的文章?。说到这里,为什么模块化代码行这么少?代码模块化就是把要实现的小功能模块封装成一个函数,这也涉及到本文所说的函数代码行数少的问题。你会发现很多底层驱动、中间层、应用层的代码其实都是用模块化编程的。比如底层驱动库函数:和RTOS模块化代码:看这些模块化代码,你会发现每个函数的代码行数并不多,基本保持在50行以内。甚至有的功能代码只有一行:INT16UOSVersion(void){return(OS_VERSION);}当然,并不是所有的模块化代码都少于50行,有的有100行,有的超过200行,但总体上在其他也就是说,模块化的代码行数比较少。3.多行代码的函数模块化代码的函数一般在50行以下。但是在实际编程中,其实有很多函数超过了50行。比如一些复杂的算法、通信协议、应用代码等,这些函数可能会超过50行。这么说吧,如果用一些条件来判断ifelse,或者switchcase,再多几个条件(比如25),基本上这个函数的代码就超过了50行。另外,在一些函数代码中,使用了很多局部变量,如果多定义几个变量,函数代码行数会超过50行:一般来说,超多行函数一般在业务逻辑应用代码中比较常见.有时候,当我们编写一个应用程序代码时,可能有数百行代码(复制粘贴)而不自知。(main函数实现了所有的功能,是不是似曾相识?)我以前做过,特意找了几年前写的代码,一个几千行的触摸屏处理函数:这个函数用ifelse来处理大量的Touch按键信息(数百个Touch),还包括一些指令、数据分析和分类,这个功能的代码行注定不会少于50行。(当然,这个功能几千行肯定有优惠的空间,减少三分之一应该没问题。)4最后一个功能超过1000行代码,理论上是可以的。但在实际开发中,尽量避免“超长行函数”,尽量将代码控制在50~80行以内。“超长线路功能”在实际开发中也很常见。如果函数太多,代码要尽量规范,比如:代码命名、对齐、注释等。因此,一个函数代码功能有点太多了,不要怀疑自己,同时“压缩”"代码行,标准方法代码就OK了。