Per quanto riguarda l'uso di extern ci siamo...
Non siamo però in accordo sul concetto di linkage....
Per me una variabile globale ha linkage esterno perchè può essere utilizzata anche in altri moduli e non solo nel modulo in cui è dichiarato... il linkage è una proprietà di una variabile o di una funzione (linkage interno se l'entità è visibile solo nello stesso modulo in cui è dichiarata, linkage esterno se visibile anche in altri moduli)Se dichiari una variabile globale in un file .c o .cpp. quella variabile ha linkage interno visto che nessun altro modulo sa che esiste.
Io ho dedotto tutto questo leggendo sul mio libro e su questo sito... Prova a dargli un'occhiata anche tu!