c++ - signo - que son los corchetes
¿Diferencia entre el corchete angular<> y las comillas dobles "" al incluir los archivos de encabezado en C++? (2)
Cuando utiliza paréntesis angulares, el compilador busca el archivo en la lista de rutas de inclusión. Cuando usa comillas dobles, primero busca el directorio actual (es decir, el directorio donde se encuentra el módulo que se está compilando) y solo entonces buscará la lista de rutas de inclusión.
Entonces, por convención, usas los corchetes angulares para las inclusiones estándar y las comillas dobles para todo lo demás. Esto garantiza que en el caso (no recomendado) en el que tenga un encabezado local con el mismo nombre que un encabezado estándar, se elegirá el correcto en cada caso.
Posible duplicado:
¿Cuál es la diferencia entre #include <filename> y #include “filename”?
¿Cuál es la diferencia entre el corchete angular < >
y las comillas dobles " "
mientras se incluyen los archivos de encabezado en C ++?
Me refiero a qué archivos se supone que se incluirán usando, por ejemplo, #include <QPushButton>
y qué archivos se incluirán utilizando, por ejemplo: #include "MyFile.h"
???
Es dependiente del compilador. Dicho esto, en general, el uso de "
prioridad a los encabezados en el directorio de trabajo actual sobre los encabezados del sistema. <>
Generalmente se usa para los encabezados del sistema. Desde la especificación (Sección 6.10.2):
Una directiva de preprocesamiento de la forma.
# include <h-char-sequence> new-line
busca una secuencia de lugares definidos por la implementación para un encabezado identificado de forma única por la secuencia especificada entre los delimitadores
<
y>
, y provoca el reemplazo de esa directiva por todo el contenido del encabezado. La forma en que se especifican los lugares o el encabezado identificado se define por la implementación.Una directiva de preprocesamiento de la forma.
# include "q-char-sequence" new-line
provoca la sustitución de esa directiva por todo el contenido del archivo fuente identificado por la secuencia especificada entre los delimitadores. El archivo fuente nombrado se busca de una manera definida por la implementación. Si esta búsqueda no es compatible o si la búsqueda falla , la directiva es reprocesada como si leyera
# include <h-char-sequence> new-line
con la secuencia contenida idéntica (incluidos
>
caracteres, si corresponde) de la directiva original.
Entonces, en la mayoría de los compiladores, al usar ""
primero se comprueba su directorio local, y si no encuentra una coincidencia, se pasa a verificar las rutas del sistema. Usando <>
comienza la búsqueda con los encabezados del sistema.