En supposant que je doive utiliser C (pas de C ++ ou de compilateurs orientés objet) et que je n'ai pas d'allocation de mémoire dynamique, quelles sont les techniques que je peux utiliser pour implémenter une classe, ou une bonne approximation d'une classe? Est-ce toujours une bonne idée d'isoler la «classe» dans un fichier séparé? Supposons que nous puissions préallouer la mémoire en supposant un nombre fixe d'instances, ou même en définissant la référence à chaque objet comme une constante avant la compilation. N'hésitez pas à faire des hypothèses sur le concept de POO que je devrai implémenter (cela variera) et à suggérer la meilleure méthode pour chacun.
Restrictions:
- Je dois utiliser C et non une POO car j'écris du code pour un système embarqué, et le compilateur et la base de code préexistante sont en C.
- Il n'y a pas d'allocation de mémoire dynamique parce que nous n'avons pas assez de mémoire pour supposer raisonnablement que nous ne manquerons pas si nous commençons à l'allouer dynamiquement.
- Les compilateurs avec lesquels nous travaillons n'ont aucun problème avec les pointeurs de fonction
apr_
et GLib les préfixe avec g_
pour créer un espace de noms) et d'autres facteurs d'organisation sans POO. Si vous restructurez de toute façon l'application, j'envisagerais de passer un peu de temps à essayer de créer une structure procédurale plus durable.