有效地划分大功能

时间:2014-11-06 10:17:26

标签: c embedded

我目前正致力于开发一个指南,以提高嵌入式系统领域基于模型的C编程的可测试性。

我遇到的第一件事是它们创建了非常大的(例如4k行)函数。 对于测试问题,我建议将代码分成小块。 但我发现了一些问题,并希望现在是解决这个问题的最有效方法。

想象一下,前4k行函数有10个局部变量 现在我需要将这些变量传递给使用它们的每个函数。 什么是最好的,意味着最有效的方式。

目前我有两个想法,都有一些缺点:

  1. 通过引用将本地人传递给需要它们的函数。我需要使用引用,因为许多函数会改变变量。缺点:参考堆 - >速度降低。
  2. 使文件级别的本地人可见。缺点:总体上更多的内存使用量,因为变量具有更长的使用寿命。
  3. 是否有其他方法可以减少缺点?

2 个答案:

答案 0 :(得分:4)

如果整个4,000行功能设法通过10个变量,我认为你可以算是幸运。

我会通过收集结构中的变量来清理它,该结构在第一个函数中实例化,然后通过传递指针与子函数共享。表现应该与你的表现非常接近。

此外,C中没有“引用”,使用该术语可能会让人感到困惑。

答案 1 :(得分:1)

形成一个具有您想要传递的变量的结构,并将该结构变量/结构指针发送给您调用的任何函数。这将减少传递更多的argumnets