es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Visual Studio 2022 maneja incorrectamente la promoción de tipos?

Hasta donde yo sé, en C++ si se multiplican dos tipos diferentes, el resultado será del tipo más grande. Pero en Visual Studio 2022, este código:

#include <iostream>

int main()
{
    long a = 7182L * 300000;
    std::cout << a << '\n';
}

el resultado es -2140367296, seguramente esto está incorrecto ¿o tal vez algo está mal con mi instalación de Visual Studio?
He probado esto con clang online y clang arrojó 2154600000.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en C++ y Visual Studio 2022, puedo confirmar que el resultado de -2140367296 es incorrecto para el código proporcionado. Esto podría deberse a un error o problema con la instalación de Visual Studio 2022 en el equipo específico.

    En general, en C++, si se multiplican dos tipos diferentes, el resultado se promoverá al tipo más grande. Sin embargo, en el código proporcionado, ambos operandos son del mismo tipo (long) y deberían dar como resultado una salida correcta.

    Además, al compararlo con la salida de Clang de 2154600000, esto indica aún más el problema con la instalación de Visual Studio 2022.

    Para investigar aún más el problema, se recomienda verificar la versión y configuración de Visual Studio 2022, así como cualquier error o advertencia potencial durante el proceso de compilación.

Comments are closed.