"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que `printf` funciona tanto em `std::printf` quanto em `printf` ao usar `` em C++?

Por que `printf` funciona tanto em `std::printf` quanto em `printf` ao usar `` em C++?

Publicado em 2024-12-21
Navegar:453

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

cstdio Stdio.h Namespace

Na documentação de referência C para , afirma que todos os elementos da biblioteca residem dentro do namespace std . No entanto, os experimentos mostram que as chamadas de função std::printf e printf funcionam. Isso indica que os cabeçalhos C importam nomes de símbolos para os namespaces padrão e globais? o espaço de nomes global. Por outro lado, incluir importa nomes de símbolos para o namespace global, potencialmente incorporando-os também ao namespace std.

Esse comportamento se estende a todos os cabeçalhos de estilo C. De acordo com o padrão C 11 (Anexo D), os cabeçalhos da biblioteca padrão C se comportam da seguinte forma:"2 Cada cabeçalho C, cada um dos quais tem um nome no formato name.h, se comporta como se cada nome colocado no namespace da biblioteca padrão pelo cabeçalho cname correspondente é colocado dentro do escopo do namespace global."

Portanto, permanece incerto se esses nomes são inicialmente declarados ou definidos dentro do namespace std e depois injetados no namespace global por meio de declarações de uso ou vice-versa.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3