math.h
->cmath
¿Por qué hay un prefijo "c" en la versión C++ de C libs?
stdlib.h
->cstdlib
entiendo la diferencia entre la versión ".h" y la versión "c-prefijo", pero lo que era la razón para optar por utilizar la "c "prefijo?
math.h
->cmath
¿Por qué hay un prefijo "c" en la versión C++ de C libs?
stdlib.h
->cstdlib
entiendo la diferencia entre la versión ".h" y la versión "c-prefijo", pero lo que era la razón para optar por utilizar la "c "prefijo?
EDIT: Bien, tenemos algunas personas que tal vez no leyeron la pregunta con cuidado, o hicieron suposiciones sobre lo que significaba la pregunta o cómo se interpretarían las respuestas.
Estoy respondiendo a la siguiente pregunta aquí:
pero lo que fue la razón para optar por utilizar el prefijo "C"?
Destacar que es originalmente del lenguaje C, supongo.
Los encabezados que terminan con .h son los encabezados C originales. Los que tienen el prefijo c (y ninguna extensión) son las versiones de encabezado C incorporadas por el estándar C++ (el prefijo "te recuerda" eso). En teoría, todo dentro de ellos debe estar dentro del espacio de nombres std.
¡Sé la diferencia, gracias! Pero, ¿por qué el uso de un prefijo "c" para indicar las versiones incorporadas por el estándar de C++? –
@ Fábio - Supongo que es solo una manera de decirte ... Oye, estás programando en C++, pero este es un encabezado original de C. Sin embargo, ** ahora ** está de acuerdo con C++ y todo está dentro del espacio de nombres ** std **. –
La calificación del nombre es necesaria para eliminar la ambigüedad entre las versiones de los espacios de nombres de dominio estándar calificados de los encabezados de biblioteca C y los encabezados de biblioteca C++ con el mismo nombre. Por ejemplo: "string.h" contiene funciones originales de cadena C, "cstring" contiene funciones de serie C calificadas como std y "string" contiene clases de cadenas C++. Sin la calificación del nombre, los dos últimos nombres chocarían.
+1: ¡finalmente una respuesta correcta! – rubenvb
@rubenvb Explicó el motivo para usar un prefijo, pregunté por qué eligieron el prefijo "c". Solo Platinum Azure intentó responder mi pregunta. –
@ Fábio: excepto que su respuesta es, al menos, incompleta ya que omite todo el punto. – rubenvb
@Platinum Azure ¿Tiene alguna fuente para confirmarlo? –
La versión ".h" también tiene sus orígenes en el lenguaje C, para mí eso no tiene mucho sentido. –
No he encontrado ninguna fuente, pero creo que @FredOverflow es perfecto. En cuanto a los choques en los nombres de archivo, eso es bastante significativo porque un compilador de C++ busca archivos en ciertos lugares con ciertos sufijos, y sería desagradable si el archivo incorrecto terminara siendo incluido debido a una colisión de nombre. En cuanto a la versión '.h', es solo porque los diseñadores decidieron usar el sufijo' .h' para indicar que es un encabezado. Sin embargo, es más una convención que nada. –