dobbiamo scrivere la dichiarazione del tipo in ogni unità!
codice:
struct complesso {
    double reale;
    double immag;
};
Questo dice al compilatore come è fatta un'eventuale varibile complesso, vale ne più ne meno come un int a livello di linkage.
codice:
complesso c1;
Questa è la dichiarazione della variabile che dev'essere fatta in un unico file .c o .cpp. Per renderla visibile ad altri moduli si usa mettere nel file .h;
codice:
extern complesso c1;
per specificare che la variabile in oggetto ha un extern linkage appunto.