Ich habe große Hauptdatei enthält etwa 7.000 Zeilen C-Code. Wenn ich diesen Code modular machen und den Code von dieser Datei trennen möchte. Was ist das Hauptkriterium für die Trennung der Funktionen aus der Datei und Funktionen, die in der Datei bleiben sollen.Wie organisiere ich meine c-Code
Antwort
- Folgen Sie früheren Vorschlägen.
- Entfernen Sie doppelten oder fast doppelten Code, indem Sie Funktionen erstellen.
- Organisieren durch Funktionalität und Abhängigkeit. Module sollten so wenig gegenseitige Abhängigkeit wie möglich haben.
- Folgen Sie SOLID Principles und andere Entwurfsmuster und Praktiken (die alle in gewissem Grad in C implementiert werden können).
Ich verwende gerne eine Top-down-Dekomposition des Codes. Zum Beispiel:
main()
{
Initialize();
Introduce();
while (some_condition)
{
DoSomething();
DoSomethingElse();
}
SayGoodbye();
Shutdown();
}
Die main()
sollten kurz und auf den Punkt und geben Ihnen einen schnellen Überblick darüber, was das Programm macht aus einem High-Level. Jede dieser Funktionen kann auf ähnliche Weise unterteilt werden. Dies sollte fortgesetzt werden, bis die Funktionen der niedrigsten Ebene einen einzigen, fokussierten Zweck haben (logische Modularität). Diese Funktionen können in zusätzliche .c/.h-Dateien eingefügt werden, um physische Modularität zu haben.
Viel Glück!
Aufbrechen nach Funktionalität/Verantwortung.
Zum Beispiel, legen Sie alle String-Behandlung in einem Modul/Datei, legen Sie Dateihandling in einem anderen.
Es ist eine einfache Maßnahme: je weniger Deklarationen Sie in der .h-Datei haben, desto modularer ist es. Die Gruppierung nach Funktionalität ist wichtig. Mit extern Erklärungen ist sehr schlecht, geben Sie denen eine zusätzliche "Strafe".
- 1. Wie organisiere ich meine Spezifikationsdateien?
- 2. Wie organisiere ich meine Datenbank am besten?
- 3. Wie verwende ich CCode-Attribute in Vala?
- 4. Wie organisiere ich meinen Unterricht?
- 5. Wie organisiere ich eine Karte In Python
- 6. Wie organisiere ich eine zentrale Protokollierung?
- 7. Wo soll ich Injection mit Ninject 2+ machen (und wie organisiere ich meine Module?)
- 8. Wie organisiere ich meine Java-Pakete in unserem Web-MVC-Projekt?
- 9. Wie organisiere ich projektspezifische schreibgeschützte Dateien in C#
- 10. Organisiere node_modules nach Eltern-Modul
- 11. Wie organisiere ich korrekt die Ausgabe in Spalten?
- 12. Wie organisiere ich Felder von Apache Solr für CRM-Anwendung
- 13. Wie organisiere ich am besten eine Visual Studio 2008 + Qt Codebase?
- 14. SaaS-App mit angularjs und nodejs, wie organisiere ich verschiedene Clients?
- 15. Wie organisiere ich C# -Klassen, die voneinander erben, aber auch Eigenschaften besitzen, die von einander erben?
- 16. Wie organisiere ich besser iOS und Android Apps Projektmanagement für das gleiche Projekt in JIRA
- 17. Wie organisiere ich meinen C-Projektcode und seine externen Bibliotheken am besten?
- 18. Wie zentriere ich meine Navigationselemente?
- 19. Wie zentriere ich meine Formularschaltfläche?
- 20. Wie beende ich meine Befehlszeile ++
- 21. Wie verbinde ich meine asp.net
- 22. Wie veröffentliche ich meine Website?
- 23. Wie "veröffentliche" ich meine Anwendung?
- 24. Wie ändere ich meine Fehlerbehandlungsmethode
- 25. Wie beschleunige ich meine Codeausführung?
- 26. Wie deaktiviere ich meine @ Html.ListBoxFor()
- 27. Wie verändere ich meine Textbox?
- 28. Wie schleife ich meine Audiodatei?
- 29. Wie aktualisiere ich meine HttpWebRequest
- 30. Wie lade ich meine Eigenschaftendatei?
überprüfen Sie diesen Beitrag, ich weiß nicht, ob es helfen könnte, ich denke, es könnte http://stackoverflow.com/questions/3615789/what-to-do-about-a-11000-lines- c-Quelldatei/3617776 # 3617776 –