CORRECÇÃO: Optimizador do compilador de Visual C++ poderá remover ciclos

Traduções de Artigos Traduções de Artigos
Artigo: 306083 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Em determinados, raras circunstâncias, o compilador C++ podem optimizar ciclos fora de um programa. Quando examina o integrador compilado, poderá Repare que existem funções que não contêm instruções de loop, apesar do código de origem contém construções de loop.

Causa

Este problema ocorre devido a um erro no optimizador global.

Resolução

Informações sobre Service Packs

Para resolver este problema, obtenha o service pack mais recente do Microsoft Visual Studio. NET. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
837234Lista de erros corrigidos no Visual Studio .NET 2002 1

Informações sobre a correcção

A versão inglesa desta correcção tem os atributos de ficheiro (ou posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas no formato de universal hora (UTC) coordenada Coordinated. Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   Date          Version       Size        File name
   -------------------------------------------------
   11-Apr-2002   13.0.9485.0   1,753,088   C2.dll 
   11-Apr-2002   13.0.9485.0   2,105,344   C1xx.dll 
				


Como contornar

Para contornar o problema, utilize um tipo de dados maior como o valor de iteração.

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a". Este problema foi corrigido pela primeira vez no Visual Studio .NET 2002 1.

Mais Informação

O programa seguinte é um exemplo do comportamento. Depois de criar este programa de exemplo utilizando as predefinições de compilador para modo de edição, imprime ciclo apenas uma vez.
#include <windows.h>
#include <stdio.h>
#include <tchar.h>


int __cdecl _tmain (int argc, _TCHAR* argv[])
{
    unsigned char stream, tmp;

    for (stream = 0; stream < 4; stream++)
    {
        tmp = stream;
        fprintf (stderr, "Loop\r\n", (unsigned char)((tmp+4)<<5));
    }
    return 0;
}
				

Propriedades

Artigo: 306083 - Última revisão: 12 de fevereiro de 2014 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbvs2002sp1sweep kbvs2002sp1fix kbbug kbfix kbqfe KB306083 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: 306083

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