我正在使用类似于OO的技术来开发C中的嵌入式媒体应用程序。我的“类”是.h / .c模块,它们使用数据结构和函数指针结构来模拟封装,多态和依赖项注入。
现在,人们期望一个myModule_create(void)
功能会与之myModule_destroy(pointer)
对应。但是,在嵌入的项目中,切勿释放实际实例化的资源。
我的意思是,如果我有4个UART串行端口,并使用所需的引脚和设置创建4个UART实例,则绝对没有理由要在运行时的某个时候销毁UART#2。
因此,遵循YAGNI(您将不需要它)原则,我应该省略析构函数吗?这对我来说似乎很奇怪,但我想不出对他们有什么用。设备下电后释放资源。
myModule_create(void)
功能呢?您可以将要使用的特定实例硬编码到公开的接口中。