Je travaille sur une application moyenne embarquée en C utilisant des techniques de type OO. Mes "classes" sont des modules .h / .c utilisant des structures de données et des structures de pointeurs de fonction pour émuler l'encapsulation, le polymorphisme et l'injection de dépendances.
Maintenant, on pourrait s'attendre à ce qu'une myModule_create(void)
fonction vienne avec une myModule_destroy(pointer)
contrepartie. Mais le projet étant intégré, les ressources qui sont instanciées de manière réaliste ne devraient jamais être libérées.
Je veux dire, si j'ai 4 ports série UART et que je crée 4 instances UART avec leurs broches et paramètres requis, il n'y a absolument aucune raison de vouloir détruire UART # 2 à un moment donné pendant l'exécution.
Donc, en suivant le principe YAGNI (vous n'en aurez pas besoin), dois-je omettre les destructeurs? Cela me semble extrêmement étrange mais je ne peux pas penser à une utilisation pour eux; les ressources sont libérées lorsque l'appareil s'éteint.
myModule_create(void)
fonction? Vous pouvez simplement coder en dur les instances spécifiques que vous prévoyez d'utiliser dans l'interface que vous exposez.