Mit extern ist es kein Problem, wenn es mehrfach auftauch für die gleiche Variable. Es ist ja eine Deklaration (Bekanntmachung) und keine Definition (Oblekt anlegen)!
Bewährt hat sich in C/C++ folgendes:
source.h
source.cCode:#ifndef _SOURCE_H_ #define _SOURCE_H_ extern int var1; extern int volatile var2; extern void mache (int volatile * arg); #define MAKRO(x) ((x)+1) #endif /* _SOURCE_H_ */
Damit sind Makros und globale Variablen unf Funktionen überall benutzbar, wo der Header inkludiert wird.Code:#include "source.h" int var1; int volatile var2 = 42; void mache (int volatile * arg) { *arg = MACHE (*arg); var1 = var2; }
Es ist dann auch kein Thema, wenn über verschlungene Umwege ein Header 2 mal inkludiert wird.
Beispiele sind im Wiki bei den C-Quellen zur genüge.







Zitieren

Lesezeichen