Ich stieß auf einen Code, der von jemand anderem geschrieben wurde. Es gibt mehrere globale Funktionen, die in Headerdateien als statisch deklariert sind. Die Funktionen selbst sind in separaten Implementierungsdateien definiert. AFAIK, statische Funktionsdefinition ist außerhalb der Übersetzungseinheit, in der die Funktion definiert ist, nicht sichtbar. Wenn ja, warum deklarieren Sie statische Funktionen in Header-Dateien?
%Vor% Nun, Funktionen, die als static
deklariert sind, sind nur in der Quelldatei sichtbar, in der sie definiert sind. Es ist jedoch keine gute Idee, sie in einem separaten Header zu deklarieren. Ich habe auch einige Fälle gesehen, in denen Entwickler dies getan haben. Sie tun es, um sie in einer Reihenfolge anzuordnen, damit sie eine Funktion von einer anderen aufrufen können. Hier ist, was ich meine:
Aber IMHO ist das eine ziemlich katastrophale Art, es zu tun. Eine bessere Lösung besteht darin, die static
-Funktionen nur in der Quelldatei vor der Implementierung zu implementieren.