2014-11-06 60 views
0

我目前正在制定一个指导方针,以提高嵌入式系统领域基于模型的C编程的可测试性。有效划分大功能

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

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

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

  1. 按引用传递当地人给需要它们的功能。我需要使用引用,因为许多函数会改变有关变量的内容。缺点:引用去堆 - >速度降低。
  2. 使当地人在文件级别可见。缺点:由于变量具有更长的使用期限,所以整体内存使用量更大。

是否有其他方法可以减少缺点?

+0

对于currios人来说:模型开发的工具是ASCET – lsteinme 2014-11-06 10:21:26

回答

4

如果整个4000行函数设法获得10个变量,我认为你可以算你幸运。

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

此外,C中没有“引用”,使用该术语可能会引起混淆。

+0

以及10其中轻描淡写,有更多像30-40 – lsteinme 2014-11-06 10:24:38

+0

reallity我同意,我可以补充说,要么变量是相关的,这就是为什么子功能需要所有这些变量(然后使用一个结构)或变量不相关,IMO不同的子功能将需要变量的不同子集。 – Emilien 2014-11-06 10:25:24

+0

它更像每个功能都需要其中的一些功能 – lsteinme 2014-11-06 10:28:23

1

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