Das ist doch ganz einfach und in jedem C Buch beschrieben,

ohne static wird wie Variable jedesmal neu erzeugt um beim verlassen der Funktion zerstört.
Mit static behält sie ihren Wert und ist bei jedem Funktionsaufruf verfügbar.

Gruß Sebastian