Open In App

What does main() return in C and C++?

Last Updated : 19 Sep, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

C

According to coding standards, a good return program must exit the main function with 0. Although we are using void main() in C, In which we have not suppose to write any kind of return statement but that doesn’t mean that C code doesn’t require 0 as exit code. Let’s see one example to clear our thinking about need of return 0 statement in our code.

Example #1 :




#include <stdio.h>
  
void main()
{
  
    // This code will run properly
    // but in the end,
    // it will demand an exit code.
    printf("It works fine");
}


Output:

It works fine

Runtime Error:

NZEC

As we can see in the output the compiler throws a runtime error NZEC, Which means that Non Zero Exit Code. That means that our main program exited with non zero exiting code so if we want to be a developer than we make these small things in our mind.

Correct Code for C :




#include <stdio.h>
  
int main()
{
  
    // This code will run properly
    // but in the end,
    // it will demand an exit code.
    printf("This is correct output");
    return 0;
}


Output:

This is correct output

Note: Returning value other than zero will throw the same runtime error. So make sure our code return only 0.

Example #2 :




#include <stdio.h>
  
int main()
{
  
    printf("GeeksforGeeks");
    return "gfg";
}


Output:

It works fine

Runtime Error:

NZEC

Correct Code for C :




#include <stdio.h>
  
int main()
{
  
    printf("GeeksforGeeks");
    return 0;
}


Output:

GeeksforGeeks

C++

In case of C++, We are not able to use void keyword with our main() function according to coding namespace standards that’s why we only intend to use int keyword only with main function in C++. Let’s see some examples to justify these statements.

Example #3 :




#include <iostream>
using namespace std;
  
void main()
{
    cout << "GeeksforGeeks";
}


Compile Errors:

prog.cpp:4:11: error: '::main' must return 'int'
 void main()
           ^

Correct Code for C++ :




#include <iostream>
using namespace std;
  
int main()
{
    cout << "GeeksforGeeks";
    return 0;
}


Output:

GeeksforGeeks

Example #4 :




#include <iostream>
using namespace std;
  
char main()
{
    cout << "GeeksforGeeks";
    return "gfg";
}


Compile Errors:

prog.cpp:4:11: error: '::main' must return 'int'
 char main()
           ^
prog.cpp: In function 'int main()':
prog.cpp:7:9: error: invalid conversion from 'const char*' to 'int' [-fpermissive]
  return "gfg";
         ^

Correct Code for C++ :




#include <iostream>
using namespace std;
  
int main()
{
    cout << "GeeksforGeeks";
    return 0;
}


Output:

GeeksforGeeks


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads