CORRECÇÃO: /og faz com que inválido duplo resultado devolvido da função

Traduções de Artigos Traduções de Artigos
Artigo: 167996 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando estiver a criar com /og e chamar uma função que devolve um dobre, aparentemente devolve resultados inválidos. O exemplo abaixo demonstra um formulário deste erro.

Causa

O compilador de geração de código aparece pilha FPU sem guardar o resultado.

Resolução

Desactive /og volta a função que está a chamar a função devolver dupla utilizando # pragma optimize("g",off).

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos da Microsoft listados no início deste artigo. Este erro foi corrigido no Visual Studio 97 Service Pack 1.

Para obter informações adicionais sobre o Visual Studio 97 Service Pack 1, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
170365INFO: Visual Studio 97 Service Packs - O, onde e por que razão

Mais Informação

Se a examinar o seguinte código num depurador, demonstra como o regresso do f1 não é armazenado no d.

Código de exemplo

   // Compile options needed: /Og
   double f1()
   {
      return 1.0;
   }
   void f2()
   {
      double d = 0.0;
      d=f1();
   }
				

Propriedades

Artigo: 167996 - Última revisão: 5 de julho de 2005 - Revisão: 1.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
Palavras-chave: 
kbmt kbbug kbcode kbcompiler kbfix kbvs97sp1fix kbvs97sp2fix KB167996 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 167996
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com