Functions have external linkage by default and can be called from any other file in the project.
For more on linkage please see the linkage concept.
A static function can only be called within the source file where it is defined.
For example
// file scope, internal linkage
// can only be called from within this file
static void some_function()
{
// code snipped
}
// file scope, external linkage by default
// can be called from any other file in the project
int main()
{
// code snipped
}
Even if a function is declared in a header, if it is defined as static it will not be callable from outside of its source file.
A source file could include the header, call the static function declared in the header, and compile, but the linker will fail to find the static function definition.
A function marked as static in a source file should not be declared in its header file.