Pre-requisite: Functions in C/C++
The return statement returns the flow of the execution to the function from where it is called. This statement does not mandatorily need any conditional statements. As soon as the statement is executed, the flow of the program stops immediately and return the control from where it was called. The return statement may or may not return anything for a void function, but for a non-void function, a return value is must be returned.
Syntax:
return[expression];
There are various ways to use return statements. Few are mentioned below:
- Methods not returning a value: In C/C++ one cannot skip the return statement, when the methods are of return type. The return statement can be skipped only for void types.
- Not using return statement in void return type function: When a function does not return anything, the void return type is used. So if there is a void return type in the function definition, then there will be no return statement inside that function (generally).
Syntax:
void func() { . . . }
Example:
C
// C code to show not using return
// statement in void return type function
#include <stdio.h>
// void method
void
Print()
{
printf
(
"Welcome to GeeksforGeeks"
);
}
// Driver method
int
main()
{
// Calling print
Print();
return
0;
}
chevron_rightfilter_noneC++
// C++ code to show not using return
// statement in void return type function
#include <iostream>
using
namespace
std;
// void method
void
Print()
{
printf
(
"Welcome to GeeksforGeeks"
);
}
// Driver method
int
main()
{
// Calling print
Print();
return
0;
}
chevron_rightfilter_noneOutput:Welcome to GeeksforGeeks
- Using return statement in void return type function: Now the question arises, what if there is a return statement inside a void return type function? Since we know that, if there is a void return type in the function definition, then there will be no return statement inside that function. But if there is a return statement inside it, then also there will be no problem if the syntax of it will be:
Correct Syntax:
void func() { return; }
This syntax is used in function just as a jump statement in order to break the flow of the function and jump out of it. One can think of it as an alternative to “break statement” to use in functions.
Example:
C
// C code to show using return
// statement in void return type function
#include <stdio.h>
// void method
void
Print()
{
printf
(
"Welcome to GeeksforGeeks"
);
// void method using the return statement
return
;
}
// Driver method
int
main()
{
// Calling print
Print();
return
0;
}
chevron_rightfilter_noneC++
// C++ code to show using return
// statement in void return type function
#include <iostream>
using
namespace
std;
// void method
void
Print()
{
printf
(
"Welcome to GeeksforGeeks"
);
// void method using the return statement
return
;
}
// Driver method
int
main()
{
// Calling print
Print();
return
0;
}
chevron_rightfilter_noneOutput:Welcome to GeeksforGeeks
But if the return statement tries to return a value in a void return type function, that will lead to errors.
Incorrect Syntax:
void func() { return value; }
Warnings:
warning: 'return' with a value, in function returning void
Example:
C
// C code to show using return statement
// with a value in void return type function
#include <stdio.h>
// void method
void
Print()
{
printf
(
"Welcome to GeeksforGeeks"
);
// void method using the return
// statement to return a value
return
10;
}
// Driver method
int
main()
{
// Calling print
Print();
return
0;
}
chevron_rightfilter_noneC++
// C++ code to show using return statement
// with a value in void return type function
#include <iostream>
using
namespace
std;
// void method
void
Print()
{
printf
(
"Welcome to GeeksforGeeks"
);
// void method using the return
// statement to return a value
return
10;
}
// Driver method
int
main()
{
// Calling print
Print();
return
0;
}
chevron_rightfilter_noneWarnings:prog.c: In function 'Print': prog.c:12:9: warning: 'return' with a value, in function returning void return 10; ^
- Not using return statement in void return type function: When a function does not return anything, the void return type is used. So if there is a void return type in the function definition, then there will be no return statement inside that function (generally).
- Methods returning a value: For methods that define a return type, the return statement must be immediately followed by the return value of that specified return type.
Syntax:
return-type func() { return value; }
Example:
C
// C code to illustrate Methods returning
// a value using return statement
#include <stdio.h>
// non-void return type
// function to calculate sum
int
SUM(
int
a,
int
b)
{
int
s1 = a + b;
// method using the return
// statement to return a value
return
s1;
}
// Driver method
int
main()
{
int
num1 = 10;
int
num2 = 10;
int
sum_of = SUM(num1, num2);
printf
(
"The sum is %d"
, sum_of);
return
0;
}
chevron_rightfilter_noneC++
// C++ code to illustrate Methods returning
// a value using return statement
#include <iostream>
using
namespace
std;
// non-void return type
// function to calculate sum
int
SUM(
int
a,
int
b)
{
int
s1 = a + b;
// method using the return
// statement to return a value
return
s1;
}
// Driver method
int
main()
{
int
num1 = 10;
int
num2 = 10;
int
sum_of = SUM(num1, num2);
cout <<
"The sum is "
<< sum_of;
return
0;
}
chevron_rightfilter_noneOutput:The sum is 20
Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.