there are 3 main uses for the static.
1. If you declare within a function: It retains the value between function calls
2.If it is declared for a function name: By default function is extern..so it will be visible from other files if the function declaration is as static..it is invisible for the outer files
3. Static for global variables: By default we can use the global variables from outside files If it is
static global..that variable is limited to with in the file