I want to have a static function which I declare in my .c file before defining it:
//file a.c version 1 static int foo(); ... static int foo() { ... }
Yes 7.1.1/6
A name declared in a namespace scope without a storage-class-specifier has external linkage unless it has internal linkage because of a previous declaration and provided it is not declared const.
const
See also the examples of 7.1.1/7