Another issue: consistency. With Bruno's approach, a public function must have *no* spec just before its definition, while each private one does. I think we all agree that duplicating the spec (before definition and in the .h file) is not maintainable.
That also depends on whether you insist on prototypes for all static functions. In that case, that's the place for specs of private functions, and *no* function has a spec before the definition.
Paolo