C ++函数中可以有多行代码

时间:2016-04-07 06:13:30

标签: c++ visual-studio function

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

5 个答案:

答案 0 :(得分:4)

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

来自book

  

复杂的算法会不时地导致更长的例程,   在这种情况下,应该允许例程增长   有机高达100-200行。 (一条线是非注释,非空白   源代码行。)几十年的证据表明这样的惯例   长度不比简短的例程更容易出错。让问题这样   作为嵌套深度,变量数量和其他复杂性相关   考虑因素决定了例程的长度而不是强加   长度限制本身。

     

如果要编写长度超过200行的例程,请小心。   所报告的研究均未降低成本,减少误差   速率,或两者都有更大的例程,区分大小更大   超过200行,你必然会遇到上限   传递200行代码时的可理解性。

答案 1 :(得分:3)

没有限制,但最多可保持30行左右的可维护性。应该尽可能使用。

答案 2 :(得分:3)

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

  

由于计算机是有限的,因此C ++实现不可避免地受限于它们可以成功处理的程序的大小。每个实施都应记录已知的限制。

     

限制可能会限制包含下述数量或其他数量的数量。建议将每个数量后面的括号内的数字作为该数量的最小值。但是,这些数量仅是指导原则,不能确定合规性。

继续列出以下建议的最小值,这些最小值可能更有可能在一个巨大的函数中被击中(特别是如果它是自动生成的):

  

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

     

- 具有块范围的标识符在一个块[1 024]中声明。

     

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

     

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

     

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

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

答案 3 :(得分:1)

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

程序必须始终分成几部分。每个职能都应该做个人工作。例如,sort函数不应filter,或允许其他参数可选地过滤。继续前进,功能分解应该进入对象级分解。

了解最小耦合高内聚

答案 4 :(得分:0)

我不会给你建议。我只想回答你的问题。

对于C ++标准中的函数长度,没有定义上限(或下限)。在编程的一生中,你不可能编写一个超出现代编译器容量的单一函数,例如VS或GCC。我希望实际上限远远超过100,000行,并且可能超过100万行。

当然你不应该编写如此大的函数,但是你可能想要做的一件有用的事情是编写一个输出C ++代码的程序,然后编译。在这种情况下,具有相当大的单一功能并不罕见。