cstdio stdio.h Namespace
La referencia de C para cstdio establece que "Cada elemento de la biblioteca se define dentro del espacio de nombres estándar". Sin embargo, descubrió que tanto std::printf como printf funcionan, lo que plantea la cuestión de si los encabezados C incluyen símbolos en ambos espacios de nombres.
La respuesta es más matizada.
Incluyendo cstdio
La inclusión de cstdio importa símbolos al espacio de nombres estándar y posiblemente al espacio de nombres global. Esto se debe a que cstdio incluye stdio.h, que es un encabezado de estilo C.
Incluyendo stdio.h
Incluyendo stdio.h importa símbolos al espacio de nombres global y posiblemente en el espacio de nombres estándar. Esto se debe a que stdio.h es un encabezado de estilo C.
Características de compatibilidad
El uso de encabezados de estilo C en C es una característica de compatibilidad. El estándar C 11 especifica que para compatibilidad con la biblioteca estándar C, la biblioteca estándar C proporciona 25 encabezados C, incluidos cstdio y stdio.h.
El estándar establece además que cada encabezado C "se comporta como si cada nombre colocado en el espacio de nombres de la biblioteca estándar por el encabezado cname correspondiente se coloca dentro del alcance del espacio de nombres global."
Conclusión
En resumen, al incluir encabezados de estilo C en C , los símbolos se pueden importar tanto al espacio de nombres estándar como al global, según los encabezados específicos que se utilicen y la implementación del compilador. Sin embargo, no siempre se garantiza que ambos espacios de nombres contengan los mismos símbolos.
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