viernes, noviembre 17, 2006

El preprocesador de C

He leido un artículo en el rincón del programador sobre el preprocesador de C, que creo que es bastante claro y explicativo. Uno de los problemas que nos suelen surgir son la doble inclusión de funciones o definiciones de tipos. Esto se puede solucionar de la siguiente forma:

Problemas de inclusión

Cuando estamos añadiendo ficheros de cabecera estándar, muchas veces duplicamos las inclusiones, y el compilador no protesta, aunque "teóricamente redefinamos" cosas. Sin embargo, cuando incluímos nuestros ficheros, sí que hay problemas. Redefinición de tipos, variables ya definidas, etc. ¿Cuál es el sistema que usa el compilador con los .h estándar? ¿Cuál es el increíble secreto de los programadores profesionales para evitar esto?...


/* Este es un fichero fichero.h */
#ifndef _FICHERO_H_
#define _FICHERO_H_

/* Aqui el código */

#endif

La magia es fácil. El truco consiste en hacer una definición cuando se incluye el fichero. Esto, combinado con el #ifndef nos asegura que sólo se incluirá una vez el código de cabecera. Una vez que se aprende, esta estructura se convierte en un gesto natural a la hora de programar un fichero de cabecera.

En el artículo ademas se tratan otros temas bastante útiles como la compilación condicional y la utilización de macros. El artículo completo se encuentra en la siguiente direccion:

http://www.elrincondelprogramador.com/default.asp?pag=articulos%2Fleer.asp&id=16

1 comentario:

Anónimo dijo...

Si te hubieras leído el Kernighan ya lo sabrías...