K
Keith Thompson
Indeed it is. However, I'm not talking about "a function definition";
I'm talking about the two forms for main specified by 5.1.2.2.1.
Which says:
The function called at program startup is named main. The
implementation declares no prototype for this function. It shall
be defined with a return type of int and with no parameters:
int main(void) { /* ... */ }
or with two parameters (referred to here as argc and argv, though
any names may be used, as they are local to the function in which
they are declared):
int main(int argc, char *argv[]) { /* ... */ }
or equivalent; or in some other implementation-defined manner.
I believe the "or equivalent" covers "int main() {/*...*/}" (though I
still prefer "int main(void) {/*...*/}").