EXIT_FAILURE, either in a return statement in main or as an argument to exit(),
is the only portable way to indicate failure in a C or C++ program.
exit(1) can actually signal successful termination on VMS, for example.
If you're going to be using EXIT_FAILURE when your program fails,
then you might as well use EXIT_SUCCESS when it succeeds, just for the sake of symmetry.
On the other hand, if the program never signals failure,
you can use either 0 or EXIT_SUCCESS. Both are guaranteed by the
standard to signal successful completion. (It's barely possible that EXIT_SUCCESS could have a value other than 0,
but it's equal to 0 on every implementation I've ever heard of.)
Using return 0; has the minor advantage that you don't need these includes to call exit()
In C to use exit(EXIT_SUCCESS) you need:
#include <stdlib.h>In C++ to use exit(EXIT_SUCCESS) you need:
#include <cstdlib>For that matter, in C starting with the 1999 standard, and in all versions of C++, reaching the end of main()
does an implicit return 0; anyway, so you might not need to use either 0 or EXIT_SUCCESS explicitly.
(But at least in C, I consider an explicit return 0; to be better style.)
https://stackoverflow.com/questions/8867871/should-i-return-exit-success-or-0-from-main