Namensräume in C
Der Namensraum der Funktionen der Standardbibliothek ist der Raum von Namen mit sogenannter externer Bindung oder—kurz—der Raum externer Namen. Ein externer Name einer Übersetzungseinheit (eines Teils eines Programmes oder einer Bibliothek) ist in anderen Übersetzungseinheiten „sichtbar“ (verwendbar). Damit der Name einer Funktion in einer Bibliothek von anderen Programmteilen verwendet werden kann, muß er also mit externer Bindung definiert sein.
In C teilen sich alle Funktionen mit externen Namen einen globalen Namensraum. Trotz des Titels dieser Lektion gibt es also keine weiteren expliziten Namensräume für externe Namen von Funktionen. Dadurch wird es manchmal etwas „eng“ im einzigen externen Namensraum, denn jeder Name muß so gewählt werden, daß er nicht mit einem schon verwendeten Namen übereinstimmt.
Bis zum Standard ISO/IEC 9899:1999 (E) waren bei externen Namen auch nur die ersten sechs Zeichen unterscheidungskräftig, erst seit dem Standard ISO/IEC 9899:1999 (E) muß eine Implementation mindestens die 31 ersten Zeichen beachten. Die ehemalige Beschränkung auf sechs signifikante Zeichen ist auch heute noch daran in der Sprache erkennbar, daß die meisten Namen von Funktionen relativ kurz sind und sich alle in den ersten sechs Zeichen unterscheiden. Beispiele solcher Namen sind "fgets", "fputc", "gets", "labs", "abs", "printf", "sprintf", "vsprintf" und "fprintf".
Als eine Art von Ersatz für die Schreibweise von Namen mit einem ausdrücklichen Namensraum und Bereichsauflösungsoperator gibt es in C allerdings die Unterteilung der Menge aller möglicher Namen anhand einiger Merkmale, wie etwa der Anfangszeichen. So reserviert C bestimmte Namen für die Implementation, die nicht durch ein C -Quelltext definiert werden dürfen. Es handelt sich um viele Typen von Namen, die mit einem Grundstrich "_" beginnen und natürlich um die in der Standardbibliothek verwendeten Namen und um einige Namen, die in späteren Versionen der Standardbibliothek verwendet werden könnten.