Posted By: Slava Vishnyakov
I understand what a
static variable is, but what is a
And why is it that if I declare a function, let’s say
void print_matrix, in let’s say
a.h) and include
"a.c" – I get
"[email protected]@....) already defined in a.obj", BUT if I declare it as
static void print_matrix then it compiles?
UPDATE Just to clear things up – I know that including
.c is bad, as many of you pointed out. I just do it to temporarily clear space in
main.c until I have a better idea of how to group all those functions into proper
.c files. Just a temporary, quick solution.
static functions are functions that are only visible to other functions in the same file (more precisely the same translation unit).
EDIT: For those who thought, that the author of the questions meant a ‘class method’: As the question is tagged
C he means a plain old C function. For (C++/Java/…) class methods,
static means that this method can be called on the class itself, no instance of that class necessary.