私はOOのようなテクニックを使用して、Cで中程度の組み込みアプリケーションに取り組んでいます。私の「クラス」は.h / .cモジュールであり、データ構造体と関数ポインタ構造体を使用して、カプセル化、ポリモーフィズム、および依存性注入をエミュレートします。
これで、myModule_create(void)
関数にmyModule_destroy(pointer)
対応する関数が付属することが期待されます。しかし、プロジェクトが埋め込まれている場合、現実的にインスタンス化されたリソースは決して解放されるべきではありません。
つまり、4つのUARTシリアルポートがあり、必要なピンと設定を使用して4つのUARTインスタンスを作成する場合、ランタイム中のある時点でUART#2を破棄する必要はまったくありません。
YAGNI(あなたはそれを必要としないでしょう)の原則に従って、私はデストラクタを省略すべきですか?これは私には非常に奇妙に思えますが、それらの使用法を考えることはできません。デバイスの電源がオフになると、リソースは解放されます。
myModule_create(void)
関数があるのか 使用する予定の特定のインスタンスを、公開するインターフェースにハードコードするだけで済みます。