Ob etwas in der Header-Datei oder in der Quelldatei deklariert wird, macht für den Compiler keinen Unterschied. Tatsächlich weiß der eigentliche Compiler absolut nichts über irgendwelche "Header-Dateien", da Header-Dateien von dem sogenannten Präprozessor, der seine Arbeit vor dem eigentlichen Compiler erledigt, in Quelldateien eingebettet werden. Zu dem Zeitpunkt, zu dem die Quelldateien (mit eingebetteten Header-Dateien) zum eigentlichen Compiler gelangen, gibt es keine Möglichkeit zu sagen, was ursprünglich dort war und was von Header-Dateien eingefügt wurde. Die Quelldatei mit allen eingebetteten Header-Dateien heißt Übersetzungseinheit. I.e. Der eigentliche Compiler arbeitet mit Übersetzungseinheiten, nicht mit einigen "source" - oder "header" -Dateien.
In C-Sprache haben alle Objekte und Funktionen, die im Dateibereich deklariert sind, standardmäßig externe Verknüpfung, was bedeutet, dass sie global sind, einzigartig für das gesamte Programm. Also hast du falsch gedacht. Funktionen sind nicht lokal für nur eine Quelldatei.
Wenn Sie eine Funktion (oder ein Objekt) lokal für eine einzelne Übersetzungseinheit erstellen möchten, müssen Sie einige explizite Schritte ausführen. Sie müssen es als static
deklarieren. Wenn es als statisch deklariert wird, gibt es interne Verknüpfung, was im Wesentlichen bedeutet, dass es intern zu seiner Übersetzungseinheit wird.
Die Deklaration Ihrer Funktionen static
funktioniert nur, wenn beide wirklich lokal in ihren eigenen Übersetzungseinheiten sein müssen. Wenn dies nicht der Fall ist, d. H. Wenn mindestens eine der Funktionen eine global zugängliche (verknüpfbare) Funktion sein sollte, dann haben Sie keine andere Wahl, als eine der Funktionen umzubenennen.
Deshalb verwende ich immer wirklich aussagekräftige Namen für Variablen und Funktionen. Wenn diese beiden Funktionen genau dasselbe tun, dann brauchen Sie keinen von beiden. Wenn sie verschiedene Dinge tun, dann geben Sie jedem einen aussagekräftigen Namen, der widerspiegelt, was er tut. Wer Ihren Code pflegen muss, wird es Ihnen danken. Wahrscheinlichkeiten sind, das wirst du sein. – Mawg