1

I don't get why C++ pros see red when they see void main(). Can someone explain why intmain() is good and void main() bad?

9
Contributors
9
Replies
16
Views
12 Years
Discussion Span
Last Post by sujitkumarsingh
0

Not declaring a function's return value is an error in C++, whether the function is main or not. In C99, the October 1999 revision to Standard C, not declaring a function's return value is also an error (in the previous version of Standard C an implicit int was assumed as the return value if a function was declared/defined without a return value). But the usual requirement of both Standard C++ and Standard C is that main should be declared to return an int. In other words, this is an acceptable form of main:

int main(void) { /* ... */ }

The problem is that this code declares main to return a void and that's just no good for a strictly conforming program. Neither is this:

implicit int not allowed in C++ or C99

main() { /* ...Whatever... */ }

Hope this helps,
- Stack Overflow

1

Operating systems such as UNIX require applications to return an integer value.
0 usually meaning success and non-zero meaning an error.

0

I don't get why C++ pros see red when they see void main(). Can someone explain why intmain() is good and void main() bad?

In this reply, I posted 6 links to explanations of why it is considered wrong.

0

the first, you mustn't have any return statement in your main() function as if you use void main() declare. If you use int main() function, you must return a int value, otherwise your complier will prompt a warning.

0

In You Program You can Have Program like this

pro 1
void main()
{
/* */

}

pro 2

int main()
{

/* */

return 0;
}

in pro1 its showing you void main it's mean's RETURN NOTHING just a main Function with your code!! but in pro2 its haveing int main() function it's mean's that function return a value!! so if you put in void main function to return a value u will get an Error so best way is you have to use void main function in your program!!

example

#include <stdio.h>
#include <conio.h>


int call(int x,int y);

void main()
{
int num1,num2,ans;

clrscr();
printf("Enter the First number : ");
scanf("%d",&num1);
printf("\nEnter the Secound Number : ");
scanf("%d",&num2);

/*call the cal function using ans */

ans=call(num1,num2);

printf("The Add of num1 and num2 is %d",ans);

getch();
}

int call(int x,int y)
{
int z;

z=(x+y);

return (z); /* cal function go back to main function*/

}

-1

Why is it necessary to have void main() in Java? Any takers?

Votes + Comments
Yet another off-topic bump of a 2+ year old thread - because java has fuck-all to do with C or C++
2

>Why is it necessary to have void main() in Java?
I'd say it's because Java applications run in a virtual environment, curtosey of the Java VM. So when a program finishes, it doesn't return to the operating system, it in fact returns to the VM. Therefore rules such as int main do not apply.

Votes + Comments
I know this is a late REPlie, but your post is definitely worth it :P
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.