In C89 (the first standard for C), return 0; is always necessary.

In C99 and later, you can omit the return 0 (although main must still be declared as returning int), and the compiler will...