static functions are functions that are only visable to other functions in the same file. Consider the following code.
main.c |
---|
#include |
funcs.c |
---|
/************************************* * * Function declarations (prototypes). * *************************************/ /* Func1 is only visable to functions in this file. */ static void Func1(void); /* Func2 is visable to all functions. */ void Func2(void); /************************************* * * Function definitions * *************************************/ void Func1(void) { puts("Func1 called"); } /*************************************/ void Func2(void) { puts("Func2 called"); } |
If you attempted to compile this code with the following command,
gcc main.c funcs.c |
it will fail with an error simular to.....
undefined reference to `Func1' |
Because 'Func1' is declared as static and cannot be 'seen' by 'main.c'.
For some reason, static has different meanings in in different contexts.
It seems a little strange that the same keyword has such different meanings....
C++ extensions for static
Top | Master Index | Keywords | Functions |