Crear archivos cabecera en C

Yonatan
04 de Febrero del 2010
Hola.

Desearía saber cómo crear archivos de cabecera, en C, que pueda utilizar en cualquier programa (en C) que desee.

Por favor diganme cómo se crea, cómo se compila, donde debo poner los archivos resultantes (me imagino .c, .o y .h) y finalmente cómo compilar cualquier programa que utilice mi archivo de cabecera.
Muchas gracias.

Capitan Kirk
04 de Febrero del 2010
Supongo que lo que quieres es escribir una librería para utilizar con otros programas. Partamos del caso básico, que sería que esta librería consta de un único archivo de código fuente (archivo principal) y su correspondiente archivo de cabecera.

Ambos archivos los creas del mismo modo: con un editor de texto (bien independiente, bien el del entorno de desarrollo, si utilizas uno.

En el archivo principal pones las funciones de que va a constar tu librería. Las que no tengan que "ser vistas" desde el exterior las declaras como static, por ejemplo, static int FuncAux(parametros...). Pon sus prototipos en el archivo principal, no en el de cabecera. Las funciones que tengan que "ser vistas" desde el exterior las escribes normalmente, pero sus prototipos los pones en el archivo de cabecera.

En el archivo de cabecera pones los prototipos de las funciones, macros, definiciones de tipos, etc., que vayas a utilizar. Ojo, no pongas declaraciones de variables ni código ejecutable. No es ilegal, pero los errores serían difíciles de localizar (por ejemplo, un depurador puede volverse loco, indicando los errores en donde no están).

El #include correspondiente a este archivo de cabecera (que sería la interface de tu módulo de programa) debe estar tanto en el archivo principal (que sería la implementación) como en el archivo de tu programa, que va a hacer uso de ese módulo.

Para su uso, la primera opción es añadir ambos archivos a la lista de archivos de que consta el proyecto (si utilizas un IDE), guardándolos en el mismo lugar que el resto de los archivos del proyecto. Al compilar, el compilador incluirá y compilará automáticamente todos los archivos de la lista.

La segunda opción es crear un proyecto en el que incluyes tu archivo principal y su correspondiente include. Tendrás que indicar que la salida del compilador debe ser un archivo de librería. Para utilizar esta librería en otros programas, deberás incluirla en el proyecto correspondiente. El compilador se encargará de efectuar el enlace correspondiente.

Estoy partiendo de la base de vas a utilizar un entorno de desarrollo. Si no tienes uno, prueba, por ejemplo, Codeblocks. Es gratuito, y hay versiones para Windows y Linux.

Si tienes alguna duda, ya sabes dónde estamos. Saludos,