Hacker News new | ask | show | jobs
by eesmith 505 days ago
I'm pretty sure main is supposed to be declared with an int return type, but the compiler may specify something else.

My reading of https://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf says the C99 spec requires "int main(void)", "int main(int argc, char *argv[])" or "some other implementation-defined manner".

There's also the clause that if the type is compatible with int then "reaching the } that terminates the main function returns a value of 0.".

In other words, C implicitly adds return 0 if missing (and appropriate).