C/Visual C - Significado de #include "file.c"

 
Vista:

Significado de #include "file.c"

Publicado por Greg (1 intervención) el 19/01/2009 11:57:24
Hola,

Alguien me podria explicar que diferencia hay entre estas dos opciones, y que significa exactamente la segunda.

1.- Libreria estatica, forma convencional.
//archivo calc.c

int sum (int a, int b)
{
return a+b;
}
-----------------------------
//archivo calc.h

#ifndef __CALC_H__

#define __CALC_H__
int sum (int a, int b);
#endif
--------------------------
//archico calculadora.c
#include "calc.h"

int main(void)
{
int resulado=sum(2,3);
}
----------------------------------
gcc -c calculadora.c -L. -lcalc -o calculadora

2.- Forma "rara" y unica que me funciona (estoy programando en un sistema embebido complejo)

//archico calculadora.c
#include "calc.c"

int main(void)
{
int resulado=sum(2,3);
}
-------------------------------
gcc -c calculadora.c -o calculadora
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Significado de #include

Publicado por fernando.gomez (1603 intervenciones) el 19/01/2009 18:19:06
Hola,

#include lo que hace es, antes de compilar, copia el contenido del archivo incluído (i.e. file.c) y lo pega en donde esté la instrucción. Después de preprocesar, tu archivo calculadora.c (de la segunda forma) quedaría así para el compilador:

int sum (int a, int b)
{
return a+b;
}

int main(void)
{
int resulado=sum(2,3);
}

lo cuál es un código legal en C.

La forma 1 es correcta también, pero el problema es que no le estás diciendo a gcc que compile calc.c, y por eso seguro te está lanzando errores de enlazado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Significado de #include

Publicado por vjjjj (1 intervención) el 12/10/2009 20:12:11
ke ereess puutoo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar