„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum funktioniert „printf“ sowohl in „std::printf“ als auch in „printf“, wenn „in C++“ verwendet wird?

Warum funktioniert „printf“ sowohl in „std::printf“ als auch in „printf“, wenn „in C++“ verwendet wird?

Veröffentlicht am 21.12.2024
Durchsuche:258

Why does `printf` work in both `std::printf` and `printf` when using `` in C  ?

cstdio Stdio.h Namespace

In der C-Referenzdokumentation für wird behauptet, dass sich alle Bibliothekselemente im std-Namespace befinden . Experimente zeigen jedoch, dass sowohl std::printf- als auch printf-Funktionsaufrufe funktionieren. Bedeutet dies, dass C-Header Symbolnamen sowohl in den std-Namespace als auch in den globalen Namespace importieren?

Antwort

Einschließlich werden Symbolnamen in den std-Namespace und möglicherweise importiert der globale Namensraum. Im Gegensatz dazu werden durch die Einbeziehung von Symbolnamen in den globalen Namespace importiert und möglicherweise auch in den std-Namespace integriert.

Dieses Verhalten gilt für alle Header im C-Stil. Gemäß dem C 11-Standard (Anhang D) verhalten sich C-Standardbibliotheksheader wie folgt:

"2 Jeder C-Header, von dem jeder einen Namen in der Form name.h hat, verhält sich so, als ob jeder Name platziert wäre im Namensraum der Standardbibliothek, indem der entsprechende CNAME-Header im globalen Namensraumbereich platziert wird über using-deklarationen in den globalen Namespace eingefügt oder umgekehrt.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3