As per the standard, main() can take no argument [ie, main(void)] or 2 arguments [main (int, char asterisk asterisk) or equivalent] or some implementation defined manner. See 5.1.2.2.1 in C2x working draft[0].
[0] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2346.pdf