Heim > Artikel > Backend-Entwicklung > C-Header in C: std:: vs. Global Namespace – Welcher Ansatz ist besser?
Navigieren in C-Headern in C : std:: vs. Global Namespace
Bei der Arbeit mit C-Headern in C stellt sich eine Frage bezüglich der Bevorzugter Ansatz zum Aufrufen von Funktionen: Verwendung des std::-Namespace oder des globalen Namespace. Während C die Einbeziehung von C-Headern durch Änderung des Header-Namens unterstützt (z. B. stdio.h in cstdio), bleibt die semantische Überlegung, welcher Ansatz angemessener ist, bestehen.
Der C 11-Standard befasst sich mit diesem Problem in Abschnitt D .5 [depr.c.headers], die besagt, dass sich jeder C-Header (mit dem Namensformat name.h) so verhält, als ob jeder durch den entsprechenden cname-Header deklarierte Name im globalen platziert wäre Namensraum. Es bleibt jedoch unklar, ob diese Namen zuerst im std-Namespace deklariert oder definiert und dann in den globalen Namespace eingefügt werden.
Zum Beispiel ist die
Basierend auf diesen Informationen wird empfohlen, die CNAME-Header einzuschließen und Deklarationen und Definitionen aus dem Standard-Namespace zu verwenden. Dies stellt die Kompatibilität mit zukünftigen Revisionen sicher und folgt dem im Standard dargelegten bevorzugten Ansatz:
#include <cstdio> int main() { std::printf("Hello world\n"); }
Während es technisch akzeptabel ist, das
Das obige ist der detaillierte Inhalt vonC-Header in C: std:: vs. Global Namespace – Welcher Ansatz ist besser?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!