Heim  >  Artikel  >  Backend-Entwicklung  >  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?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 05:43:30517Durchsuche

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 innerhalb des std befinden Namensraum. Experimente zeigen jedoch, dass sowohl std::printf- als auch printf-Funktionsaufrufe funktionieren. Bedeutet dies, dass C-Header Symbolnamen sowohl in den Standard- als auch den globalen Namespace importieren?

Antwort

Einschließlich importiert Symbolnamen in den std-Namespace und möglicherweise in den globalen Namespace. Im Gegensatz dazu gilt auch für importiert Symbolnamen in den globalen Namespace und integriert sie möglicherweise auch in den std-Namespace.

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 Standardbibliotheks-Namespace, indem der entsprechende CNAME-Header innerhalb des globalen Namespace-Bereichs platziert wird using-Deklarationen oder umgekehrt.

Das obige ist der detaillierte Inhalt vonWarum funktioniert „printf“ sowohl in „std::printf“ als auch in „printf“, wenn „“ in C verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn