Entiendo que la directiva
#ifndef pregunta
si No esta definido ..., si es así el compilador tomara todas las lineas siguientes hasta encontrar
#else o
#endif/********file2.h********/
#define TEMPMAXIMA = 20
...
#ifndef MAX // Si no esta definido MAX
#define TEMPMAXIMA = 20 // Entonces defina TEMPMAXIMA = 20
...
#else
...
#endif
/*****end of file2.h*****/
--------------------
Regresando al primer ejemplo, coloque unos mensajes para detectar por donde pasa el compilador y comprobar el funcionamiento de la directiva ifndef
/********file.h********/
#ifndef file__h
#define file__h
#warning "el compilador paso por aquí, por que no esta definido file__h "
... /* Código del usuario */
#else
#warning "ya esta definido file__h "
#endif
/*****end of file.h*****/
ahora se incluye el anterior archivo
file.h desde otros dos archivos de nombre
funcion1.h y funcion2.h para comprobar cuantas veces el compilador incluye a file.h y ver si la directiva
#ifndef file__h trabaja a no
/********funcion1.h********/
#include "file.h"
...
/*****end of funcion1.h*****/
/********funcion2.h********/
#include "file.h"
...
/*****end of funcion2.h*****/
Al compilar veo que no sirve la recomendación que hace el libro de programación en C de incluir la siguiente linea al inicio de cada un archivo cabecera (header *.h)
#ifndef file__h La primer pasada que hace el compilador arroja correctamente el siguiente mensaje "el compilador paso por aquí, por que no esta definido file__h " OK
pero la segunda ves ya no debería por que ya se definió, es decir debe arrojar
#warning "ya esta definido file__h "Conclucion el compilador Codewarrior genera dos veces el mismo mensaje
"el compilador paso por aquí, por que no esta definido file__h " Por favor analicen los códigos anteriores y me comentan
Gracias
Nota la directiva
#warning no se si esta disponible en PIC-C