4 Stimmen

Code-Anordnung in Quelldateien - Vorwärtsdeklarationen vs. "Wiederholen Sie sich nicht"?

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.

0voto

Ilya Punkte 3068

Wie wichtig ist das für Sie?

Das ist es nicht.

Es ist wichtig, dass alle lokalen Funktionen als solche gekennzeichnet werden. static aber meiner Meinung nach ist die Definition, wie man Funktionen in der Datei gruppiert, zu viel. Es gibt keine stichhaltigen Argumente für irgendeine Version, und ich finde keinen einzigen starken Nachteil.

Im Allgemeinen sind Kodierungskonventionen sehr wichtig und wir versuchen, so viel wie möglich zu definieren, aber in diesem Fall habe ich das Gefühl, dass dies ein ungerechtfertigter Overhead ist.

Nachdem ich alle Beiträge noch einmal gelesen habe, scheint es, als sollte ich einfach eine höhere Bewertung abgeben (was ich auch getan habe) Darius Antwort, anstatt all diese Dinge zu schreiben ...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X