in K&R steht in Kapitel 1.10 folgendes über externe Variablen: "The variable must also be declard in each funtion that wants to access it."
Dann ein Programm mit externen / globalen Variablen.
In diesem Programm werden außerhalb jeglicher Funktion externe / globale Variablen definiert.
Dann jedoch, in den einzelnen Funktionen, die Deklaration eben dieser Variablen mit dem extern keyword vorneweg.
Für die externe / globale Variable max wird in den jeweiligen Funktionen noch einmal extern int max deklariert.
Ich selbst habe bisher globale Variablen lediglich einmal außerhalb jeglicher Funktion definiert und nie zusätzlich innerhalb einer Funktion deklariert.
Das keyword extern ist bei mir nur für globale Variablen vorbehalten, die in einem seperat compilierten Code definiert wurden.