Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Caster en 21 Octubre 2012, 14:27 pm



Título: Duda en los include
Publicado por: Caster en 21 Octubre 2012, 14:27 pm
Pues queria saber cual de las dos formas es la correcta al incluir las librerias en C

Código
  1. #include <stdio.h>
Código
  1. #include "stdio.h"

Cual es la correcta? o son las dos?

Saludos


Título: Re: Duda en los include
Publicado por: NeoB en 21 Octubre 2012, 15:55 pm
Tengo entendido que los "" es para cuando es una cabecera que has hecho tu, por ejemplo, si tienes tu programa así:
Código:
 |
 |--- main.c
 |--- cabecera.h
 |---carpeta
           |
           |----cabecera2.h
Pues esas cabeceras las incluirías con
Código
  1. #include "cabecera.h"
Código
  1. #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.


Título: Re: Duda en los include
Publicado por: Foxy Rider en 22 Octubre 2012, 06:13 am
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.