Separar un programa en varios archivos fuentes:

Iniciado por fafafa01, 15 Diciembre 2016, 05:52 AM

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

fafafa01

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?




ivancea96

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.

fafafa01

osea, getch.c no tiene acceso a ningún archivo ¿no?

ivancea96

getch.c puede tuilizar todas las funciones que están declaradas en calc.h, ya que hace el include de ese archivo.

fafafa01

no entiendo entonces.

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

ivancea96

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.

Borito30

#6
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++
Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)