Angenommen, ich muss C verwenden (keine C ++ - oder objektorientierten Compiler) und ich habe keine dynamische Speicherzuordnung. Welche Techniken kann ich verwenden, um eine Klasse zu implementieren, oder eine gute Annäherung an eine Klasse? Ist es immer eine gute Idee, die "Klasse" in eine separate Datei zu isolieren? Angenommen, wir können den Speicher vorab zuweisen, indem wir eine feste Anzahl von Instanzen annehmen oder sogar den Verweis auf jedes Objekt als Konstante vor der Kompilierungszeit definieren. Sie können gerne Annahmen darüber treffen, welches OOP-Konzept ich implementieren muss (es wird variieren) und die jeweils beste Methode vorschlagen.
Beschränkungen:
- Ich muss C und kein OOP verwenden, da ich Code für ein eingebettetes System schreibe und der Compiler und die bereits vorhandene Codebasis in C sind.
- Es gibt keine dynamische Speicherzuweisung, da wir nicht über genügend Speicher verfügen, um davon auszugehen, dass wir nicht ausgehen, wenn wir mit der dynamischen Zuweisung beginnen.
- Die Compiler, mit denen wir arbeiten, haben keine Probleme mit Funktionszeigern
apr_
und GLib ihnen Präfixe vor g_
, um einen Namespace zu erstellen) und andere Organisationsfaktoren ohne OOP verwenden. Wenn Sie die App trotzdem umstrukturieren möchten, würde ich in Betracht ziehen, einige Zeit damit zu verbringen, eine wartbarere Verfahrensstruktur zu entwickeln.