Elles sont nécessaires pour :
- -
- un nom de variable ou de fonction défini dans une
autre unité de compilation.
- -
- un nom de fonction défini dans la même unité de compilation, pour
résoudre le cas d'appel récursif :
la fonction f1 appelle f2 qui appelle f3, ...
qui appelle fn qui appelle f1.
- -
- un nom de structure ou d'union défini dans la même unité de compilation,
pour résoudre le cas de référence récursive : la struct s1 possède un
champ dont le type référence la struct s2 qui possède un champ dont
le type référence la struct s3 qui etc. jusqu'à revenir à la
struct s1.
Matthieu Moy
2017-02-08