Das übliche Vorgehen ist, daß man zu jedem Modul, das Funktionen/Objekte bringt, die in anderen Modulen verwendet werden, einen Header-File macht.
In modul.c: (Implementierung+Instanziierung von globalen Funcs und Objekten, Modul-lokale typedefs, #define, ...)
Code:
#include "module.h"
// lokal in module.c
typedef ... local_t;
#define MODULE_MACRO ....
static type3_t bar_module(...);
// global
type1_t foo;
type2_t bar (...)
{
...
}
static type3_t bar_module(...)
{
...
}
In modul.h: (Bekanntmachung, globale #defines, globale typedefs)
Code:
#ifndef _MODULE_H_
#define _MODULE_H_
typedef ... global_t;
#define GLOBAL_MACRO ...
extern type1_t foo;
extern type2_t bar (...);
#endif // _MODULE_H_
In sonstwas.c
Code:
#include "module.h"
func()
{
// Verwenden von Makros, Funktionen, Typen, Objekten aus module
}
Lesezeichen