The question was about plain c functions, not c++ static methods, as clarified in comments.
I understand what a static variable is, but what is a static function?
And why is it that if I declare a function, let’s say void print_matrix, in let’s say a.c (WITHOUT a.h) and include 'a.c' – I get 'print_matrix@@....) 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 .h and .c files. Just a temporary, quick solution.
staticfunctions 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
Che means a plain old C function. For (C++/Java/…) class methods,staticmeans that this method can be called on the class itself, no instance of that class necessary.