And as you quoted from C11, "5.1.2.2.1 Program startup"
It clearly shows main() defined with "void" as the parameter list, when no parameters are specified.

I stand by my statement, in a hosted environment:
For main() and all other functions, I strongly recommend using full prototypes, and definitions.