In un codice che sto studiando, mi sono imbattuto in un file di header (che poi viene incluso in piu' file .c) che contiene, oltre agli usuali prototipi delle funzioni, anche delle variabili
tipo

int pippo[100]

e delle strutture, tipo

typedef struct aaa{
int c;
int b;
char *e;
char f[120][80];
}g;

E' corretto dichiarare questi elementi dentro in file .h ?
Cosa accade a queste variabili? Sono globali?
Se si, lo sono anche senza usarle (dentro i file .c) con l'attributo "extern"?
Ho letto qui:

http://programmazione.html.it/c/c_46.htm

ma non capisco se il prefisso "extern" serve solo per le variabili dichiarate in altri moduli (e non sia necessario per quelle dichiarate nelle intestazioni).

Ciao,

Zax.