is not and never has been C++, nor has it even been C. See the ISO C++ standard 3.6.1 or the ISO C standard 126.96.36.199.1. A conforming implementation accepts
A conforming implementation may provide more versions of main(), but they must all have return type int. The int returned by main() is a way for a program to return a value to “the system” that invokes it. On systems that doesn’t provide such a facility the return value is ignored, but that doesn’t make “void main()” legal C++ or legal C. Even if your compiler accepts “void main()” avoid it, or risk being considered ignorant by C and C++ programmers.
In C++, main() need not contain an explicit return statement. In that case, the value returned is 0, meaning successful execution. For example:
Note also that neither ISO C++ nor C99 allows you to leave the type out of a declaration. That is, in contrast to C89 and ARM C++ ,”int” is not assumed where a type is missing in a declaration. Consequently:
is an error because the return type of main() is missing.
To summarize above, it is never a good idea to use “void main()” or just “main()” as it doesn’t confirm standards. It may be allowed by some compilers though.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Write a URL in a C++ program
- Write your own memcpy() and memmove()
- How to write your own header file in C?
- How can we write main as a class in C++?
- Write a C program that won't compile in C++
- When should we write our own assignment operator in C++?
- When should we write our own copy constructor?
- C program to write an image in PGM format
- Write a program that produces different results in C and C++
- Write a C macro PRINT(x) which prints x
- How to write a running C code without main()?
- Read/Write structure to a file in C
- Write one line functions for strcat() and strcmp()
- Does C++ compiler create default constructor when we write our own?
- fopen() for an existing file in write mode
- Write a C program that does not terminate when Ctrl+C is pressed
- How to write long strings in Multi-lines C/C++?
- Write your own strlen() for a long string padded with '\0's
- Read/Write Class Objects from/to File in C++
- lseek() in C/C++ to read the alternate nth byte and write it in another file