The 'static' keyword is one of the most overloaded in C++. What exactly are you trying to do with it?
If I understand you correctly, you want to have a module-local function (one that does not appear in linker export clauses), then you should be as explicit as possible:
1 2 3 4 5 6 7 8
staticvoid f(); // a prototype
//... other stuff here
staticvoid f() // the definition
{
//...
}
Personally, I don't like extraneous prototypes lying around if I can avoid them. If I have a module-locale function, I define it before externally visible functions.