Sto lavorando su un'applicazione media incorporata in C usando tecniche simili a quelle di OO. Le mie "classi" sono moduli .h / .c che usano strutture di dati e strutture di puntatori di funzioni per emulare incapsulamento, polimorfismo e iniezione di dipendenza.
Ora, ci si aspetterebbe che una myModule_create(void)
funzione arrivi con una myModule_destroy(pointer)
controparte. Ma quando il progetto viene incorporato, le risorse istanziate realisticamente non dovrebbero mai essere rilasciate.
Voglio dire, se ho 4 porte seriali UART e creo 4 istanze UART con i loro pin e impostazioni richiesti, non c'è assolutamente alcun motivo per voler mai distruggere UART # 2 ad un certo punto durante il runtime.
Quindi, seguendo il principio YAGNI (non ne avrai bisogno), dovrei omettere i distruttori? Mi sembra estremamente strano ma non riesco a pensare a un uso per loro; le risorse vengono liberate quando il dispositivo si spegne.
myModule_create(void)
funzione? Potresti semplicemente codificare le istanze specifiche che prevedi di utilizzare nell'interfaccia che esponi.