Difference between void main and int main in C/C++?

c, c++, function, program-entry-point, standards

Solution

The difference is one is the correct way to define `main`, and the other is not.

And yes, it does matter. Either

int main(int argc, char** argv)

or

int main()

are the proper definition of your `main` per the C++ spec.

`void main(int argc, char** argv)`

is not and was, IIRC, a perversity that came with older Microsoft's C++ compilers.

https://isocpp.org/wiki/faq/newbie#main-returns-int

Problem

Does it matter which way I declare the `main` function in a C++ (or C) program?

Original source

Related problems