El control de advertencia alcanza el final de la función no void

El control de advertencia alcanza el final de la función no void
Cuando escribimos los programas en C++. Después de ejecutar programas, a veces recibimos el error: 'Advertencia: el control alcanza el final de la función no void', lo que significa que ciertas funciones que tendrían que devolver algunos valores alcanzan la terminación. Es posible que no dé ningún valor más tarde. En este momento, es bueno echar un vistazo a si cada flujo de control contiene o no un valor de retorno. Para reconocer esta falla, primero debemos reconocer el funcionamiento del compilador.

Hay dos variedades de inexactitudes que ocurren mientras se ejecuta un programa.

Errores de tiempo de compilación: Fallas que se pueden reconocer con la ayuda de usar el compilador sin ejecutar el código. Por lo general, esos son errores de sintaxis que se reconocen sin ejecutar el código.

Errores de tiempo de ejecución: Fallas que ocurre mientras la sintaxis del programa es precisa; Sin embargo, hay un pequeño problema mientras el código se ejecuta. Por lo general, el acceso a la reminiscencia no válido los bucles ilimitados caen por debajo de los errores de tiempo de ejecución.

Este artículo hablará sobre problemas comunes confrontados por novatos y también programadores calificados. A menudo ejecutamos la precaución que indica precaución: "el control alcanza el final de la función no voidal". Por lo general, descuidamos este error debido al máximo de tiempo porque el programa, sin embargo, ejecuta lo mismo, incluso suponiendo que esta precaución viene.

Recibe el mensaje de advertencia:

Compilación de este código se ejecuta, pero se produce un error, que muestra la advertencia 'El control alcanza el final de la función no void' '. Cada función contiene un tipo de retorno que muestra el tipo de valor que la función tal vez regrese. Si el método no devuelve ningún valor, está lejos de ser un tipo de retorno vacío. Obtenemos el error anterior, mientras que la función no void no devuelve el valor.

#incluir
usando el espacio de nombres STD;
int f ()
if (falso)
regresar 0;

int main ()
F();
regresar 0;

En este caso, primero, integramos el archivo de encabezado y usamos el estándar del espacio de nombres. Además, aplicamos la declaración if. A veces puede ser la situación que tenemos numerosas declaraciones si las declaraciones y todas las declaraciones contienen el valor de retorno; Sin embargo, si no hay una afirmación más, sin embargo, podemos recibir el error debido al hecho de que el compilador no podría comprender que cada situación está cubierta.

Aquí no obtenemos nada en la salida, por lo que significa que el código se ejecuta con éxito, pero la función no devuelve ningún valor.

Use la declaración IF:

En este caso, si la condición generalmente no es verdadera y, en consecuencia, detendrá la función 'F' privada de devolver algún valor. Y es la razón detrás de recibir el mensaje de atención. El control dentro del mensaje de atención muestra el flujo de este código. Ahora verifiquemos si se trata de un error de tiempo de ejecución o un error de tiempo de compilación. La advertencia que obtenemos aquí se detecta aquí en el tiempo de ensamblaje, el uso de la sintaxis de este código y el código no siempre se ejecuta definitivamente para probar si se trata con creces la terminación de cualquier método no void.

#incluir
usando el espacio de nombres STD;
int f (int a)
Si (a < 8)
regresar 0;

int main ()
f (3);
regresar 0;

Siempre estamos seguros de que si ejecutamos el código, está devolviendo el valor 0; Sin embargo, sin embargo, podemos obtener el mismo mensaje de precaución debido al hecho de que el compilador no funciona lo suficientemente inteligente como para reconocer en el tiempo de compilación que una vez que se ejecute este código, devolverá el valor cada vez. El compilador simplemente verifica la sintaxis del código, y se traduce que para la función 'f' si la condición definida no es verdadera, el flujo de este código alcanzará la línea ocho, y no podría devolver el valor y, por lo tanto, nosotros obtener el error.

Después de compilar el programa, en salida, no obtenemos nada debido al error 'El control alcanza el final de la función no void' '.

Use las declaraciones de retorno:

Cuando las declaraciones condicionales no deben incluir ninguna declaración de devolución, el control llega al final de una función no void de otra manera. Por lo tanto, si la implementación dentro del método no void se separa y si las declaraciones no podrían ejecutar cada ruta, entonces al final, tenemos que llamar explícitamente 'retorno' para la función.

La instancia posterior valida la función de manejo de cadenas que tiene rutas condicionales. Aquí incluimos tres bibliotecas para diferentes propósitos, y después de eso, declaramos una función. Por otro lado, se dejan algunas instancias ya no evaluadas para la condición definida, lo que significa que el flujo de control puede alcanzar la función y producir errores.

Aquí definimos la función 'Reversión'. Pasamos la cadena y la condición como parámetros a esta función. El cuerpo de la función no contiene una declaración de retorno. Sin embargo, no contiene argumentos para llamar a la función. Entonces el compilador solo muestra el mensaje de precaución. Si llamamos a la función, entonces no recibimos el error.

Conclusión:

En este artículo, obtenemos información sobre el error: 'El control llega al final de la función no void' y vea cómo recibimos este error. El método no void contiene el tipo de retorno. Por lo tanto, el método quiere tener una declaración que devuelva los elementos del tipo resultante. Si se aceptan estándares de compilador definidos, este error puede reprimirse por completo, lo que lleva a errores de tiempo de ejecución si el método especificado llama en el código.