EricP, Trix is iemand die bepaalde dingen nog moet leren.
Ik heb in 1985 een programma zitten maken wat uiteindelijk "te groot" was geworden. Niet dat het niet paste, maar gewoon te veel regels code voor wat het deed zodat het niet onderhoudbaar was.
Ik had bijvoorbeeld voor een functie die vrijwel hetzelfde deed als een andere functie die functie gecopieerd en dan dat ene verschilletje geprogrammeerd. Uiteindelijk blijkt er een bug in dat gemeenschappelijke deel te zitten, daar loop je tegenaan, fix je en... dan loop je er nog een keer tegenaan.
Dit had dus anders gemoeten: Er had een parameter meegegeven moeten worden die bepaalde of ie het net zus of net zo moest doen, niet twee functies.
Trix moet daar nog achter komen. Bijvoorbeeld dit moet ook nog doordingen: "het is hoogst ongebruikelijk dat het NODIG is dat een functie langer dan een bladzijde moet worden".
Trix: Ik stel het volgende voor:
code:
// main.c
#include "a.h"
#include "b.h"
#include "c.h"
void main (void)
{
// Eventueel wat algemene initializatie
do_a ();
do_b ();
do_c ();
// eventueel dat alles in een loop.
}
In a.h doe je dan:
code:
// a.h
extern int a_somevar;
void do_a (void);
En in a.c:
code:
// a.c
#include "a.h"
// eventueel:
#include "b.h"
// maar uitsluitend als er naar module B gecommuniceerd moet worden.
// geen: #include "c.h" : module A moet niet met module C communiceren: Daar zit module B tussen.
int a_somevar;
static int a_someothervar; // alleen hier nodig!
void do_a (void)
{
// hier dingen doen.
}
En modules B en C vergelijkbaar.