Quelqu'un pourait il m'expliquer le pb suivant?

J'ai 2 pgs typiquement identiques à la variance près que dans l'un je déclare certaines variables extern dans mon .h comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
extern double son[NL];
extern double son_prec[NC];
 
double syn_frame[NL];
extern double syn_frame_prec[NC];
 
double syn[NL];
 
extern double syn_sin[NL];
double syn_sin1[NC];
double syn_sin2[NC];
Alors que dans mon second programme, je ne les déclare en extern que dans le .c situé tout en haut du code comme suit:

.h:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
double son[NL];
double son_prec[NC];
 
double syn_frame[NL];
double syn_frame_prec[NC];
 
double syn[NL];
 
double syn_sin[NL];
double syn_sin1[NC];
double syn_sin2[NC];
.c:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
extern double son[NL], son_prec[NC], syn_frame_prec[NC], syn_sin[NL];

Le problème étant que seule la première version fonctionne correctement.
Pourquoi, comment y remédier pour faire fonctionner correctement mon second sans déclarer les variables en extern dans mon .h ?

Merci