Variablen in Funktionsdefinitionen im Header

Soweit ich bisher ausprobiert sind diese Variablenamen in C/C++ optional. Gibt es eigentlich einen Grund warum? Habe das bisher noch nicht wirklich umrissen. Übrigens, gibt es eventuell ein Tool mit dem man die Definition der Source File mit dem Header synchronisieren kann? Wäre zumindest meiner Meinung nach praktisch.

Ganz grob: Die Header-Datei ist ja nur dafür da, die Schnittstelle vorzugeben. Wenn man eine Lib verwendet, dann braucht man im besten Fall nur die .h und die .dll/.so/.lib-Datei. Dabei spielt es zum “matchen” der passenden Funktionen ja keine Rolle, wie die Variablen heißen.

(Ein Tool kenne ich nicht. Einen Hinweis darauf, dass diese Struktur aber ziemlich anachronistisch ist, und man fast alles, was in den headern steht, auch in den C+±Dateien findet (außer den Sichtbarkeitsmodifizierern) kann ich mir jetzt aber auch nicht verkneifen)