What is the correct (most efficient) way to define the main() function in C and C++ — int main() or void main() — and why? And how about the arguments? If int main() then return 1 or return 0?
What is the correct (most efficient) way to define the main() function in C
Share
The return value for
mainindicates how the program exited. Normal exit is represented by a 0 return value frommain. Abnormal exit is signaled by a non-zero return, but there is no standard for how non-zero codes are interpreted. As noted by others,void main()is prohibited by the C++ standard and should not be used. The valid C++mainsignatures are:and
which is equivalent to
It is also worth noting that in C++,
int main()can be left without a return-statement, at which point it defaults to returning 0. This is also true with a C99 program. Whetherreturn 0;should be omitted or not is open to debate. The range of valid C program main signatures is much greater.Efficiency is not an issue with the
mainfunction. It can only be entered and left once (marking the program’s start and termination) according to the C++ standard. For C, re-enteringmain()is allowed, but should be avoided.