[Ayuda] Como puedo llamar un código fuente aparte en C

Iniciado por Proxmond, 3 Junio 2014, 18:06 PM

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

Proxmond

Tengo el código principal y quiero llamar otro código fuente en C e importarlo en mi código principal, ¿como hago esto? y después como lo utilizo?
Saludos.

ivancea96

Pones #include "archivo".

Así podras usar las funciones y clase de esa librería.

jaxoR

Me aparece además que necesitas tener ese archivo en la misma carpeta donde tenes el proyecto.

Proxmond

Cita de: ivancea96 en  3 Junio 2014, 18:12 PM
Pones #include "archivo".

Así podras usar las funciones y clase de esa librería.

Lo hice pero no me funciona, ¿Podrías ponerme un ejemplo?
Muchas gracias a todos.

ivancea96

Si tienes, como dice wiD^, el fichero del código o la librería en la misma carpeta que el archivo donde pongas el #include, bastaría poner, por ejemplo:

Código (cpp) [Seleccionar]
#include "funciones.h"

También puedes poner una ruta absoluta:

Código (cpp) [Seleccionar]
#include "C:/includes/funciones.h"

Proxmond

Cita de: ivancea96 en  4 Junio 2014, 00:16 AM
Si tienes, como dice wiD^, el fichero del código o la librería en la misma carpeta que el archivo donde pongas el #include, bastaría poner, por ejemplo:

Código (cpp) [Seleccionar]
#include "funciones.h"

También puedes poner una ruta absoluta:

Código (cpp) [Seleccionar]
#include "C:/includes/funciones.h"

Encontré algo en la red, que decía que primero había que definir un archivo.c y luego un archivo.h y luego poder importarlo, acá tu me dices que solo debo hacer el archivo.h, ¿Que me dices del archivo.c?


Saludos.

ivancea96

Bueno, un include lo que hace es eso, incluir el archivo.

Lo que dices ya es cuando, creas, por ejemplo, una clase, la puedes separar en 2 archivos, un .h y un .cpp.

Pero la verad, yo nunca fuí tan ordenado de hacer .h y .cpp en proyectos pequeños, así que ahí ya no te podré ayudar ^^

Mario Olivera

Hola, voy a intentar ser lo mas claro posible...

Bueno en c++ hay archivos .cpp y .h (de header o cabezal)
Bueno cuando uno aprende a programar en c++, apenas es un novato crea un archivo .cpp donde crea la funcion main: int main()
Bueno los programadores profesionales para organizar el codigo y para que sea reutilizable el programa crean archivos .h donde puedeb crear clases y funciones, (una clase es aquella que dentro posee funciones y variables), bueno vos si queres poner un codigo a tu archivo donde tenes el main vas a tener que poner #include "nombredearchivo.h".
Bueno el siguiente paso va a ser crear el archivo .h con el mismo nombre que pusiste en el include, si ya lo tenes hecho al .h no hace falta hacerlo xD
Bueno te explico en.un archivo .h se pueden crear las funciones y definirlas o crearlas y definirlas en un archivo .cpp.
Bueno asi seria si queres crear las.funciones y definirlas en.el archivo .h:

Main.cpp
#Include "cabezal.h"

Cabezal.h
Class primeraclase
{
Public:
Void funcion()
  {
   Definicion de la estructura de la funcion
  }

Int variable;
};

Ahora... si quisieras separar la interfaz de la implementacion seria asi:

Main.cpp
#Include "cabezal.h"

Cabezal.h

Class primera clase
{
Public:
Void funcion();
};

Cabezal.cpp
#Include "cabezal.h"

Primeraclase::funcion
{
Estructura de la funcion
}

Obiamente que faltaria poner el iostream y todoa los archivos de la biblioteca standar que uses, espero hayas entendido :))


Proxmond

Cita de: 718208 en  4 Junio 2014, 02:38 AM
Hola, voy a intentar ser lo mas claro posible...

Bueno en c++ hay archivos .cpp y .h (de header o cabezal)
Bueno cuando uno aprende a programar en c++, apenas es un novato crea un archivo .cpp donde crea la funcion main: int main()
Bueno los programadores profesionales para organizar el codigo y para que sea reutilizable el programa crean archivos .h donde puedeb crear clases y funciones, (una clase es aquella que dentro posee funciones y variables), bueno vos si queres poner un codigo a tu archivo donde tenes el main vas a tener que poner #include "nombredearchivo.h".
Bueno el siguiente paso va a ser crear el archivo .h con el mismo nombre que pusiste en el include, si ya lo tenes hecho al .h no hace falta hacerlo xD
Bueno te explico en.un archivo .h se pueden crear las funciones y definirlas o crearlas y definirlas en un archivo .cpp.
Bueno asi seria si queres crear las.funciones y definirlas en.el archivo .h:

Main.cpp
#Include "cabezal.h"

Cabezal.h
Class primeraclase
{
Public:
Void funcion()
  {
   Definicion de la estructura de la funcion
  }

Int variable;
};

Ahora... si quisieras separar la interfaz de la implementacion seria asi:

Main.cpp
#Include "cabezal.h"

Cabezal.h

Class primera clase
{
Public:
Void funcion();
};

Cabezal.cpp
#Include "cabezal.h"

Primeraclase::funcion
{
Estructura de la funcion
}

Obiamente que faltaria poner el iostream y todoa los archivos de la biblioteca standar que uses, espero hayas entendido :))



Acá tu me esta hablando de C++, esto también seria aplicable en C?
Muchas gracias a todos.
Saludos.

eferion

La base sí, es compatible tanto en C como en C++. Me explico.

Cuando se organiza el código fuente se suelen generar dos tipos de archivos:

* Cabeceras.
* Código fuente.

Las cabeceras se usan para poner los prototipos de las funciones, las constantes de uso público, la definición de estructuras y clases, ...

Los archivos de código fuente contienen la implementación de las diferentes funciones.

Como norma general, las funciones se suelen agrupar, por ejemplo por funcionalidad. Entonces para cada conjunto de éstas funciones se crea un archivo de cabecera y otro de código fuente. La idea de tener este diseño es permitir que cualquiera pueda usar las funciones contenidas en el archivo de código fuente desde cualquier otra parte de la aplicación. Para poder hacer uso de éstas funciones únicamente es necesario añadir un include en el que se referencie el archivo de cabecera.

Un ejemplo en c:

cabecera.h

#ifndef __CABECERA_H
#define __CABECERA_H

int func( );

#endif // __CABECERA_H


cabecera.c

#include "cabecera.h"

int func( )
{
  return 4;
}


main.cpp

#include <stdio.h>

#include "cabecera.h"

int main( )
{
  printf( "%d\n", func( ) );
}