Prerrequisito: Funciones en C/C++
La declaración de retorno devuelve el flujo de la ejecución a la función desde donde se llama. Esta declaración no necesita obligatoriamente ninguna declaración condicional. Tan pronto como se ejecuta la declaración, el flujo del programa se detiene inmediatamente y devuelve el control desde donde se llamó. La declaración de devolución puede o no devolver nada para una función nula, pero para una función no nula, se debe devolver un valor de retorno.
Sintaxis:
return[expression];
Hay varias formas de usar declaraciones de retorno. Algunos se mencionan a continuación:
- Métodos que no devuelven un valor: en C/C++ no se puede omitir la declaración de devolución, cuando los métodos son de tipo de devolución. La declaración de devolución solo se puede omitir para los tipos nulos.
- No usar la declaración de retorno en la función de tipo de retorno nulo: cuando una función no devuelve nada, se usa el tipo de retorno nulo. Entonces, si hay un tipo de retorno nulo en la definición de la función, entonces no habrá declaración de retorno dentro de esa función (generalmente).
Sintaxis:
void func() { . . . }
Ejemplo:
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;
}
C++
// 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;
}
Producción:Welcome to GeeksforGeeks
- Uso de la declaración de devolución en la función de tipo de devolución nula: ahora surge la pregunta, ¿qué sucede si hay una declaración de devolución dentro de una función de tipo de devolución nula? Como sabemos que, si hay un tipo de retorno nulo en la definición de la función, entonces no habrá declaración de retorno dentro de esa función. Pero si hay una declaración de retorno dentro, tampoco habrá problema si la sintaxis de la misma será:
Sintaxis correcta:
void func() { return; }
Esta sintaxis se usa en la función solo como una declaración de salto para interrumpir el flujo de la función y saltar fuera de ella. Uno puede pensar en ello como una alternativa a la » instrucción de ruptura » para usar en funciones.
Ejemplo:
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;
}
C++
// 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;
}
Producción:Welcome to GeeksforGeeks
Pero si la declaración de devolución intenta devolver un valor en una función de tipo de devolución nula, eso generará errores.
Sintaxis incorrecta:
void func() { return value; }
Advertencias:
warning: 'return' with a value, in function returning void
Ejemplo:
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;
}
C++
// 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;
}
Advertencias:prog.c: In function 'Print': prog.c:12:9: warning: 'return' with a value, in function returning void return 10; ^
- No usar la declaración de retorno en la función de tipo de retorno nulo: cuando una función no devuelve nada, se usa el tipo de retorno nulo. Entonces, si hay un tipo de retorno nulo en la definición de la función, entonces no habrá declaración de retorno dentro de esa función (generalmente).
- Métodos que devuelven un valor: para los métodos que definen un tipo de devolución, la declaración de devolución debe ir seguida inmediatamente por el valor de devolución de ese tipo de devolución especificado.
Sintaxis:
return-type func() { return value; }
Ejemplo:
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;
}
C++
// 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;
}
Producción:The sum is 20
Publicación traducida automáticamente
Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA