Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fafafa01 en 15 Diciembre 2016, 05:52 am



Título: Separar un programa en varios archivos fuentes:
Publicado por: fafafa01 en 15 Diciembre 2016, 05:52 am
a continuación la imagen de un programa separado en varios archivos fuentes, mi duda es:

si la función getch y ungetch del archivo getch.c se usan en el archivo getop.c, el archivo getch.c no debería también incluir a calc.h

¿que pasaría si los prototipos de las funciones de getch y ungetch se declaran en el archivo getch.c en ves del archivo calc.h?

¿porque el archivo stack.c incluye a calc.h, si no necesita ninguna funcion o variable externa al archivo?

(https://k61.kn3.net/E/E/0/A/5/6/BE3.png)



Título: Re: Separar un programa en varios archivos fuentes:
Publicado por: ivancea96 en 15 Diciembre 2016, 16:45 pm
En elc aso de getch. Imagínate que getch necesitara suar la función ungetch, por lo que fuera. No podría salvo que haya sido declarada antes. Por eso el include.

De todos modos, lo normal es dividir las funciones/clases (en caso de C++) en varias cabeceras, y cada cabecera tener su propio código (.c/.cpp).
Rara vez (salvo que haya buenas razones para ello) 1 header declara unas funciones y luego las implementa en diferentes archivos.


Título: Re: Separar un programa en varios archivos fuentes:
Publicado por: fafafa01 en 15 Diciembre 2016, 23:35 pm
osea, getch.c no tiene acceso a ningún archivo ¿no?


Título: Re: Separar un programa en varios archivos fuentes:
Publicado por: ivancea96 en 16 Diciembre 2016, 11:41 am
getch.c puede tuilizar todas las funciones que están declaradas en calc.h, ya que hace el include de ese archivo.


Título: Re: Separar un programa en varios archivos fuentes:
Publicado por: fafafa01 en 16 Diciembre 2016, 16:41 pm
no entiendo entonces.

el único archivo que no tiene #include calc.h es getch.c


Título: Re: Separar un programa en varios archivos fuentes:
Publicado por: ivancea96 en 16 Diciembre 2016, 22:19 pm
Oh, n ome fijé. Sí, va a funcionar igual, salvo en el caso que expuse, en el que en una función intentes utilizar otra que hayas definido más abajo.

En cualquier caso, si defines una función, lo normal es incluir el archivo de cabecera que la declara.


Título: Re: Separar un programa en varios archivos fuentes:
Publicado por: Borito30 en 27 Diciembre 2016, 01:42 am
Si entiendo bien las cabeceras serían la definición de los métodos que luego utilizaremos en nuestros programas .c Y cada programa .c o clase diferente lo pondremos por separado en un fichero nuevo .c con su cabecera respectiva. Por ejemplo troyano -> tendrá la cabera .h y el fichero .c del keylogger, la cabecera y .c de los screenshots, la cabecera y .c de la transferencia de archivo y luego incluyes o llamas a estos objetos desde tu programa principal (main.c)

Dependiendo de que lenguaje utilices variará.
.h es para cabeceras para ficheros en c++ y c
.c se para los programas hecho en c
.cpp para los programas hechos en c++