Wenn Sie in C programmieren und Ihren Compiler so konfigurieren, dass er darauf besteht, dass alle Funktionen deklariert werden, bevor sie verwendet werden (oder wenn Sie in C++ programmieren), dann können Sie mit einer von (mindestens) zwei Organisationen für Ihre Quelldateien enden.
Entweder:
- Kopfzeilen
- Weiterleitungsdeklarationen von (statischen) Funktionen in dieser Datei
- Externe Funktionen (primäre Eingangspunkte)
- Statische - nicht-öffentliche - Funktionen
Oder:
- Kopfzeilen
- Statische - nicht-öffentliche - Funktionen
- Externe Funktionen (primäre Eingangspunkte)
Mir ist klar, dass in C++ der Begriff "statisch" nicht bevorzugt wird, aber ich bin in erster Linie C-Programmierer, und in C++ gibt es das entsprechende Konzept, nämlich Funktionen in einem anonymen Namensraum innerhalb der Datei.
Pregunta:
- Welche Organisation verwenden Sie, und warum bevorzugen Sie sie?
Als Referenz verwendet mein eigener Code das zweite Format, so dass die statischen Funktionen definiert werden, bevor sie verwendet werden, so dass es nicht notwendig ist, sie sowohl zu deklarieren als auch zu definieren, was es erspart, die Informationen über die Funktionsschnittstellen zweimal auszuschreiben - was wiederum den Overhead (geringfügig) reduziert, wenn eine interne Schnittstelle geändert werden muss. Der Nachteil dabei ist, dass die ersten in der Datei definierten Funktionen die Routinen der untersten Ebene sind - diejenigen, die von später in der Datei definierten Funktionen aufgerufen werden -, so dass der wichtigste Code nicht ganz oben, sondern eher unten in der Datei steht. Inwieweit ist das für Sie von Bedeutung?
Ich gehe davon aus, dass alle von außen zugänglichen Funktionen in Headern deklariert werden und dass diese Form der Wiederholung notwendig ist - ich denke, das sollte nicht umstritten sein.