【问题标题】:What does it mean to have a program with too many data connections between functions? [duplicate]一个程序在函数之间有太多的数据连接意味着什么? [复制]
【发布时间】:2018-12-03 20:03:58
【问题描述】:

很可能是一个非常愚蠢的问题,但这里是。 所以我目前正在阅读 Kernighan 和 Ritchie 的 C 书,我对太多数据连接对程序的影响感到有点困惑。 是严格与代码的外观和可读性有关,还是对程序也有不利影响,即导致程序变慢。

下面是有问题的段落。

"如果必须在函数之间共享大量变量,外部 变量比长参数列表更方便和有效。作为 然而,在第 1 章中指出,这种推理应该适用于某些 小心,因为它可能对程序结构产生不良影响,并导致程序 函数之间的数据连接过多”

【问题讨论】:

  • 主要是为了人类理解。
  • 如果一个函数只做一个内聚的、定义明确的任务,它应该不需要很多不同的输入和/或输出。如果一个函数有很多不同的输入和/或输出(无论它们是传统的函数参数还是全局变量),经验表明该函数将更难理解和使用,因为它可能没有执行一个、有凝聚力、定义明确的任务。
  • 哦,我明白了,谢谢你的解释。也感谢您提供的链接,很有帮助。

标签: c function variables kernighan-and-ritchie


【解决方案1】:

外部变量过多,读者(可能还有作者)将难以把握全局。特别是,连接越多,程序员就越难以跟踪哪些函数实际读取和写入这些变量。阅读更多Are global variables bad?

参数列表太大,程序会产生一些开销,因为调用函数的成本很高。函数参数应该被推送到堆栈(或寄存器中)。阅读更多How much overhead is there in calling a function in C++?

【讨论】:

  • 大致而言,对于大多数目的,调用函数成本高,因此避免函数调用是创建单一的、不可能的好方法维护程序。
  • 干杯,为我清理了一切!
猜你喜欢
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 2021-03-06
  • 2013-01-21
  • 2010-09-14
  • 2013-01-17
  • 2014-07-27
相关资源
最近更新 更多