Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

According to C11, Section 6.7.6.3, para. 14 [ISO/IEC 9899:2011],

An identifier list declares only the identifiers of the parameters of the function. An empty list in a function declarator that is part of a definition of that function specifies that the function has no parameters. The empty list in a function declarator that is not part of a definition of that function specifies that no information about the number or types of the parameters is supplied.

...

In C++, foo() and foo(void) have exactly the same meaning and effect, so this rule doesn't apply to C++. However, foo(void) should be declared explicitly instead of foo() to distinguish it from foo(...), which accepts an arbitrary number and type of arguments.

ISO/IEC 9899:2011 Forward  Forward and Section 6.9.1, "Function definitions"

...