A static variable is a variable that has been allocated statically — whose
lifetime extends across the entire run of the program.
1. Static global variables are declared as "static" at the top level of a
source file. Such variables are not visible outside the source file ("file
scope"), unlike variables declared as "extern".
2. Static local variables are declared inside a function. They have the same
scope as normal local variables, differing only in "storage duration":
whatever values the funct