static
before a global variable means that this variable is not accessible from outside the compilation module where it is defined.
E.g. imagine that you want to access a variable in another module:
foo.c
int var; // a global variable that can be accessed from another module
// static int var; means that var is local to the module only.
...
bar.c
extern int var; // use the variable in foo.c
...
Now if you declare var
to be static you can't access it from anywhere but the module where foo.c
is compiled into.
Note, that a module is the current source file, plus all included files. i.e. you have to compile those files separately, then link them together.