Estou trabalhando em um aplicativo incorporado médio em C usando técnicas semelhantes a OO. Minhas "classes" são módulos .h / .c usando estruturas de dados e estruturas de ponteiros de função para emular encapsulamento, polimorfismo e injeção de dependência.
Agora, seria de esperar que uma myModule_create(void)
função viesse com uma myModule_destroy(pointer)
contraparte. Mas, quando o projeto está sendo incorporado, os recursos que são instanciados realisticamente nunca devem ser liberados.
Quero dizer, se eu tiver 4 portas seriais UART e criar 4 instâncias UART com os pinos e configurações necessários, não há absolutamente nenhuma razão para querer destruir o UART # 2 em algum momento durante o tempo de execução.
Então, seguindo o princípio YAGNI (você não vai precisar disso), devo omitir os destruidores? Isso me parece extremamente estranho, mas não consigo pensar em uma utilidade para eles; os recursos são liberados quando o dispositivo é desligado.
myModule_create(void)
função? Você pode apenas codificar as instâncias específicas que você espera usar na interface que você expõe.