我正在为算法编写一个小的 C 代码。主要目标是嵌入式微控制器,但是,出于测试目的,需要 Matlab/Python 接口。
我正在遵循一个嵌入式编程标准(MISRA-C 2004),它要求使用C90,不鼓励malloc
和朋友使用。因此,代码中的所有数组都在编译时分配了内存。如果更改输入数组的大小,则需要重新编译代码,这在微控制器场景中是可以的。然而,当使用 Matlab/Python 进行原型设计时,输入数组的大小会经常变化,并且每次都重新编译似乎不是一种选择。在这种情况下,使用 C99 是可以接受的,并且数组的大小应在运行时确定。
问题是:我在 C 中有哪些选项可以使这两个场景在同一代码中共存,同时保持代码干净?
我必须强调,我主要关心的是如何使代码易于维护。我考虑过使用#ifdef来获取静态分配的数组或动态分配的数组。但是数组太多了,我觉得#ifdef让代码看起来很难看。