"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué `printf` funciona tanto en `std::printf` como en `printf` cuando se usa `` en C++?

¿Por qué `printf` funciona tanto en `std::printf` como en `printf` cuando se usa `` en C++?

Publicado el 2024-12-21
Navegar:848

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

cstdio Stdio.h Namespace

En la documentación de referencia de C para , afirma que todos los elementos de la biblioteca residen dentro del espacio de nombres estándar . Sin embargo, los experimentos muestran que las llamadas a funciones std::printf y printf funcionan. ¿Indica esto que los encabezados C importan nombres de símbolos tanto en el espacio de nombres estándar como en el global?

Respuesta

Incluir importa nombres de símbolos en el espacio de nombres estándar y potencialmente el espacio de nombres global. Por el contrario, incluir importa nombres de símbolos al espacio de nombres global, incorporándolos potencialmente también al espacio de nombres estándar.

Este comportamiento se extiende a todos los encabezados de estilo C. Según el estándar C 11 (Anexo D), los encabezados de la biblioteca estándar C se comportan de la siguiente manera:

"2 Cada encabezado C, cada uno de los cuales tiene un nombre con la forma nombre.h, se comporta como si cada nombre colocado en el espacio de nombres de la biblioteca estándar mediante el encabezado cname correspondiente se coloca dentro del alcance del espacio de nombres global."

Por lo tanto, sigue siendo incierto si estos nombres se declaran o definen inicialmente dentro del espacio de nombres std y luego se inyectan en el espacio de nombres global a través de declaraciones de uso, o viceversa.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3