Erreur avec la compilation séparée

Une erreur classique est d'avoir un tableau défini dans une unité de compilation :
int tab[10];
et d'utiliser comme déclaration de référence dans une autre unité de compilation :
extern int * tab;
Rappelons que int tab[] et int *t ne sont équivalents que dans le seul cas de paramètre formel de fonction. Dans le cas qui nous occupe ici, la déclaration de référence correcte est :
extern int tab[];


Matthieu Moy 2017-02-08