int main() vs void main() in C

This question already has an answer here:

  • What should main() return in C and C++? 19 answers

  • The overwhelming majority of the time, one of int main(void) or int main(int argc, char* argv[]) is what you need to use. In particular, if you're writing a program that's going to be compiled by any major compiler for running on a personal computer, with the full set of the C standard libraries, then you almost certainly need to be returning an int from main .

    (I would also avoid using an empty argument list, see "Why don't we use (void) in main?")

    The C99 standard does allow for other implementation-defined signatures, and you can use these if you've read the manual for your compiler and it says you can.

    (5.1.2.2.1) It shall be defined with a return type of int and with no parameters ... or with two parameters ... or in some other implementation-defined manner

    Personally I would avoid them even if they are allowed (if possible), because it's one more thing to worry about if you ever need to port to another system.

    See the comments below "Why don't we use (void) in main?" for some interesting discussion on this.


    If your book says void main() it is either very very out of date, was written by an idiot (or both)

    edit: OK unless you are in a very unlikely system where you have a freestanding main - see Why is the type of the main function in C and c++ left to the user to define?


    void main() is not valid C. int main() is. That's the main difference.

    链接地址: http://www.djcxy.com/p/28724.html

    上一篇: int main(int argc,char ** argv)

    下一篇: int main()vs void main()in C