Duda en los include

Iniciado por Caster, 21 Octubre 2012, 14:27 PM

0 Miembros y 1 Visitante están viendo este tema.

Caster

Pues queria saber cual de las dos formas es la correcta al incluir las librerias en C

#include <stdio.h>
#include "stdio.h"

Cual es la correcta? o son las dos?

Saludos

NeoB

#1
Tengo entendido que los "" es para cuando es una cabecera que has hecho tu, por ejemplo, si tienes tu programa así:

|
|--- main.c
|--- cabecera.h
|---carpeta
          |
          |----cabecera2.h

Pues esas cabeceras las incluirías con #include "cabecera.h"#include "carpeta/cabecera2.h"
Mientras que cabeceras como stdio.h y esas que te da el compilador pues son con los <> por que están en la ruta del compilador para los headers.
PD: Si utilizas "stdio.h" con comillas dobles también funciona, pero el compilador buscará antes el archivo "stdio.h" en el directorio actual.

Foxy Rider

La principal diferencia es que usando los angle brackets (los "<>") indicás que se vá a buscar el encabezado en determinados lugares "estándar" (usualmente /usr, /usr/include o cualquier lugar que le hagas saber al compilador vía argumentos como -I o también variables como CPATH en el caso de Clang), y las comillas es para buscar en donde está el mismo código fuente.

El asunto es más una convención informal .... por que si mal no recuerdo el estándar dice que an ambos casos son cuestiones definidas por la implementación.
Se prefieren las comillas para includes que son propios.

Saludos.