how does int main() and void main() work

This question already has an answer here:

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

  • Neither main() or void main() are standard C. The former is allowed as it has an implicit int return value, making it the same as int main() . The purpose of main 's return value is to return an exit status to the operating system.

    In standard C, the only valid signatures for main are:

    int main(void)
    

    and

    int main(int argc, char **argv)
    

    The form you're using: int main() is an old style declaration that indicates main takes an unspecified number of arguments. Don't use it - choose one of those above.


    If you really want to understand ANSI C 89, I need to correct you in one thing; In ANSI C 89 the difference between the following functions:

    int main()
    int main(void)
    int main(int argc, char* argv[])
    

    is:

    int main()

  • a function that expects unknown number of arguments of unknown types. Returns an integer representing the application software status.
  • int main(void)

  • a function that expects no arguments. Returns an integer representing the application software status.
  • int main(int argc, char * argv[])

  • a function that expects argc number of arguments and argv[] arguments. Returns an integer representing the application software status.
  • About when using each of the functions

    int main(void)

  • you need to use this function when your program needs no initial parameters to run/ load (parameters received from the OS - out of the program it self).
  • int main(int argc, char * argv[])

  • you need to use this function when your program needs initial parameters to load (parameters received from the OS - out of the program it self).
  • About void main()

    In ANSI C 89, when using void main and compiling the project AS -ansi -pedantic (in Ubuntu, eg) you will receive a warning indicating that your main function is of type void and not of type int, but you will be able to run the project. Most C developers tend to use int main() on all of its variants, though void main() will also compile.

    Hope that helps!

    Good luck and happy coding

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

    上一篇: 主菜单选择提示在子功能scanf(C)上收集,

    下一篇: int main()和void main()如何工作