nobody0
06-07-2005, 16:53
Um Redundanz zu vermeiden verwende ich eine Header-Datei, in der nur dort und in nur einer Zeile eine Variable deklariert wird, die read-only exportiert wird und intern read-write deklariert wird:
#ifndef _TEMP_H
# define _TEMP_H
// export read-only
#ifdef _TEMP_C
# define CONST
# define u16_temperatur_INIT =0
#else
# define CONST extern const
# define u16_temperatur_INIT
#endif
// temperature in ADC12-Units
CONST volatile u16 u16_temperatur u16_tempereatur_INIT;
#endif // _TEMP_H
Das funktioniert aber nur teilweise, da die Initialisierung bzw. Nicht-Initialisierung nicht funktioniert:
> make main.o
In file included from temp.c:18:
inc/temp.h:18: syntax error before "u16_tempereatur_INIT"
inc/temp.h:18: warning: type defaults to `int' in declaration of `u16_tempereatur_INIT'
>make temp.c
inc/temp.h:18: syntax error before "u16_tempereatur_INIT"
inc/temp.h:18: warning: type defaults to `int' in declaration of `u16_tempereatur_INIT'
temp.c: In function `adc_12':
temp.c:40: `u16_temperatur' undeclared (first use in this function)
Irgendwelche Vorschläge? :confused:
#ifndef _TEMP_H
# define _TEMP_H
// export read-only
#ifdef _TEMP_C
# define CONST
# define u16_temperatur_INIT =0
#else
# define CONST extern const
# define u16_temperatur_INIT
#endif
// temperature in ADC12-Units
CONST volatile u16 u16_temperatur u16_tempereatur_INIT;
#endif // _TEMP_H
Das funktioniert aber nur teilweise, da die Initialisierung bzw. Nicht-Initialisierung nicht funktioniert:
> make main.o
In file included from temp.c:18:
inc/temp.h:18: syntax error before "u16_tempereatur_INIT"
inc/temp.h:18: warning: type defaults to `int' in declaration of `u16_tempereatur_INIT'
>make temp.c
inc/temp.h:18: syntax error before "u16_tempereatur_INIT"
inc/temp.h:18: warning: type defaults to `int' in declaration of `u16_tempereatur_INIT'
temp.c: In function `adc_12':
temp.c:40: `u16_temperatur' undeclared (first use in this function)
Irgendwelche Vorschläge? :confused: