Saltar al contenido

Valor de retorno de C++ sin declaración de retorno

Este equipo de redactores ha estado mucho tiempo investigando la resolución a tu pregunta, te dejamos la respuesta así que nuestro objetivo es resultarte de mucha apoyo.

Solución:

Estrictamente, esto provoca comportamiento indefinido. En la práctica, desde sqr tiene tipo de retorno intsiempre devolverá algo, incluso si no return declaración está presente. Ese algo puede ser cualquier int valor.

Agrega un return y active las advertencias en su compilador (g++ -Wallpor ejemplo).

int sqr(int &x)

    return x = x*x;

Esa es una basura que dependerá de un puñado de factores. Es probable que ese sea el valor almacenado en la memoria donde la función pondría el resultado si tuviera un return declaración. Esa memoria se deja intacta y luego la persona que llama la lee.

No lo pienses demasiado, solo agrega un return declaración.

tu funcion sqr() no tiene declaración de devolución. La función tiene un comportamiento indefinido con respecto al valor devuelto. Su primera salida muestra este valor de retorno.

Sin embargo, el compilador debería mostrar un diagnóstico.

prueba esto:

int sqr(int x)

  return x*x;

Reseñas y puntuaciones

Ten en cuenta dar difusión a esta crónica si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.