In C, putting
static before a variable or function in the global scope[footnote]I.e., defined outside of any functions and visible throughout the program.[/footnote] means they are only accessible within that file. So if you include that file in some other code, you won’t see that variable or function.
static within a function means it will ‘survive’ across separate calls to that function, even if you re-initialise it every time. Neat, eh?