Sometimes we use int main(), or sometimes void main(). Now the question comes
into our mind, that what are the differences between these two.
The main() function is like other functions. It also takes arguments, and
returns some value. One point we have to keep in mind that the program starts
executing from this main() function. So the operating system calls this
function. When some value is returned from main(), it is returned to operating
system.
The void main() indicates that the main() function will not return any value,
but the int main() indicates that the main() can return integer type data.
When our program is simple, and it is not going to terminate before reaching
the last line of the code, or the code is error free, then we can use the
void main(). But if we want to terminate the program using exit() method,
then we have to return some integer values (zero or non-zero). In that
situation, the void main() will not work. So it is good practice to use
int main() over the void main().
So the difference is, in C, int main() can be called with any number of
arguments, but int main(void) can only be called without any argument.
Although it doesn't make any difference most of the times, using
“int main(void)” is a recommended practice in C.