Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个C+中可以有多少行代码+;功能 一个C++函数中有多少行代码?有限制吗?我正在使用MSVS2013。我的主要功能是巨大的_C++_Visual Studio_Function - Fatal编程技术网

一个C+中可以有多少行代码+;功能 一个C++函数中有多少行代码?有限制吗?我正在使用MSVS2013。我的主要功能是巨大的

一个C+中可以有多少行代码+;功能 一个C++函数中有多少行代码?有限制吗?我正在使用MSVS2013。我的主要功能是巨大的,c++,visual-studio,function,C++,Visual Studio,Function,没有限制,但是如果可能的话,请记住最多使用30行左右的可维护性。对于您的方法应该有多少行代码,没有上限。但是你需要确保你的函数只做一件事 从: 有时,复杂的算法会导致更长的例程, 在这种情况下,应该允许常规程序的发展 有机地多达100-200行。(一行为非注释,非空白。) 几十年来的证据表明,这种 长度不比较短的例程更容易出错。让我们来讨论这些问题 由于嵌套的深度、变量的数量和其他复杂性相关 考虑因素决定了例行程序的长度,而不是强加 长度限制本身 如果您想编写长度超过200行的例程,请小心。 没

没有限制,但是如果可能的话,请记住最多使用30行左右的可维护性。

对于您的方法应该有多少行代码,没有上限。但是你需要确保你的函数只做一件事

从:

有时,复杂的算法会导致更长的例程, 在这种情况下,应该允许常规程序的发展 有机地多达100-200行。(一行为非注释,非空白。) 几十年来的证据表明,这种 长度不比较短的例程更容易出错。让我们来讨论这些问题 由于嵌套的深度、变量的数量和其他复杂性相关 考虑因素决定了例行程序的长度,而不是强加 长度限制本身

如果您想编写长度超过200行的例程,请小心。 没有一项研究报告成本降低,误差减少 速率,或两者都有,在较大的大小之间区分较大的例程 超过200行,你肯定会遇到 通过200行代码时的可理解性

如果函数太大(>60个代码语句行,不包括注释/空行),则很难理解和调试。很难改变功能。它会有太多的变量,会因为变量而需要更多不需要的堆栈大小

程序必须总是被分解成碎片。每个职能部门都应单独开展工作。例如,
排序
函数不应
过滤
,或允许附加参数选择性过滤。接下来,功能分解应该进入对象级分解


阅读关于最小耦合高内聚性

C++11标准附录B规定:

<>因为计算机是有限的,C++实现不可避免地限制了它们成功处理的程序的大小。在已知的情况下,每个实施应记录这些限制

限制可能会限制包括以下所述或其他内容的数量。建议将每个数量后括号内的数字作为该数量的最小值。但是,这些数量仅为指南,不确定是否符合要求

并继续列出以下建议的最小值,这些最小值可能更容易在大型函数中被命中(特别是在自动生成的情况下):

-复合语句、迭代控制结构和选择控制结构的嵌套级别[256]

-在一个块[1 024]中声明了块作用域的标识符

-一个逻辑源行中的字符[65 536]

-switch语句的大小写标签(不包括任何嵌套switch语句的大小写标签)[16 384]

-每个try块的处理程序[256]


因此,如果超出这些建议的最低限度,您可能更愿意检查您的实施文档。大多数编译器要么有更高的限制,要么根本没有任意的限制。

我不会给你建议。我试着回答你的问题

< > C++中的函数长度没有上限(或下限)。在编程的整个生命周期中,您编写的单个函数不太可能超过现代编译器(如VS或GCC)的容量。我预计实际上限将远远超过100000行,很可能超过100万行


当然,你不应该写这么大的函数,但是你可能想做的一件有用的事情是编写一个程序,输出C++代码,然后编译。在这种情况下,拥有一个相当大的函数是很正常的。

如果一个函数有200000行代码,而100个函数有2000行代码,程序会运行得慢吗?它可能会因为堆栈大小和分支指令的增加而运行得慢(如果从第10000行开始,在12400行结束)。我更喜欢max 10-20 max LOC,但短函数确实会使代码可读性++和可维护性+++@ChrisG是的,但太短也不好。因为每10行之后跳转到新函数的debuggig代码也可能是一团混乱。当然,取决于函数的划分方式,如果它们显然做了其他事情,那么就可以了,b但是如果函数A是函数B的核心功能,jt可能太多了。解析一些XML文件,很难将其保持在30 LOC以下,但30 LOC是一个很好的上限。我明白了,谢谢。主函数呢,在主函数中有几十万行代码可以接受吗?有一个函数的缺点是什么是否执行许多不同的操作?@anarchys答案:-正如我所说,
main
也是一个函数,因此如果您可以中断您的
main
函数,在不同的函数中编写不同的操作,并从您的
main
调用它会更好,这将被认为是一个好方法practice@anarchyistheanswer:-就缺点而言,最大的缺点是当你想调试一个bug时,那么调试
200000行代码将是一场噩梦(你在下面对此进行了评论)。而且,对于未来的编码人员来说,他们将/可能正在处理它。拥有大量生成的代码文件(THX提到这个)我们实际上对16k+线的函数有麻烦。编译器是一个ARM编译器。Visual C++仍然很好。它们是什么意思?“最小值”?它不是最大的吗?这里我缺少什么?@ JE,这些是最小的推荐最大值。例如,“一个逻辑源行中的字符[65 536 ]。意味着一个编译器可以合理地拥有65536的最大值,但是