I know that static
keyword makes a C function/variable is file-scoped.
And I've read that If I want to make a variable global scope (accessed by more than one file), I should do:
in the .c
file:
int my_global_var;
// main()....
in the .h
file:
extern int my_global_var;
So, any one will include my .h
file will be able to reference my_global_var
which is already extern
ed.
And I read also this is required for functions as well but I am using gcc
4.x and I don't extern
the function in the .h file and other programs can successfully link
it.
So, the question is...
Is the behavior of the non-static function linkage is the default or should I extern
non-static functions to adhere to the standard??