...
There is a similar rule that deals with parameter type in a more general sense: DCL07-C. Include the appropriate type information in function declarators
Other Languages
In C+, the usage of foo() and foo(void) has exactly the same meaning and effect, so this rule doesn't apply to C+. But it is still recommended to explicitly declare foo(void) instead of foo() to distinguish from foo(...), which will then takes arbitrary parameters.