C doesn't check that calls to functions without parameters honors the
signature. Thus, it is possible to call a function defined as
void function() {...
with several parameters, or assign it to a pointer to function with any
type and number of parameters, and the compiler won't complain. To avoid
this, it is mandatory to put "void" inside the parameter list; so the
previous function must be written as:
void function(void) {...
This allows the compiler to detect illegal usages and assignments.