Search code examples
c++cfunctionstandardsprogram-entry-point

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


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


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