这个问题是关于在特定实现中使用 void 指针的适当性。
我有一个相对简单的程序,它由一个无限循环组成。在每个循环中,程序都会迭代固定范围的常量值,并对每个值调用一个函数。调用的特定函数可以是三个可用函数之一,并在运行时由参数指定。在无限循环开始之前,有一个条件块,它根据提供的参数设置一个指向函数的函数指针。这样,条件逻辑只需运行一次,而不是在每个循环的每次迭代中运行。
这我已经实现并且效果很好,但我想在每次调用函数之间保持状态。我的建议是将状态存储在结构中,并在对每个值调用函数时传递该结构。问题在于每个函数需要不同的结构来存储其状态的一组不同值,并且所有三个函数的原型必须兼容(对于函数指针)。我打算通过在三个函数的原型中使用 void 指针来解决这个问题,从而保持兼容的原型,但允许我将不同的结构传递给每个函数。
问题是; 我的提议是对 void 指针的适当使用,还是它引入了太多的运行时动态,因此我应该重新考虑我的方法?
注意:不可能在三个函数中的每一个中都使用静态变量,因为结构体也需要在无限循环中可用,因为在迭代值范围之前和之后还要进行一些处理。