Oprava: Optimalizátor kompilátor Visual C++ může odebrat smyčky

Překlady článku Překlady článku
ID článku: 306083 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Za určitých výjimečných podmínek, kompilátor jazyka C++ může optimalizovat smyčky z programu. Při kontrole kompilovaný assembler mohou si poznamenat, že jsou funkce, které neobsahují žádné opakování pokyny, ačkoli zdrojový kód obsahuje konstrukce smyčky.

Příčina

K tomuto problému dochází z důvodu chyby v globální Optimalizátor.

Řešení

Informace o aktualizaci Service Pack

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro Microsoft Visual Studio .NET. Další informace získáte následujícím článku znalostní báze Microsoft:
837234Seznam opravených Visual Studio .NET 2002 Service Pack 1

Informace o opravě hotfix

Anglická verze této opravy atributy souborů (nebo novější), jsou uvedeny v následující tabulce. Data a časy těchto souborů jsou uvedeny v čase univerzální koordinovaný (čas UTC). Při zobrazení informací o souboru, bude převedena na na místní čas. Rozdíl mezi místním časem a UTC časem kartě časové pásmo v panelu Datum a čas v Ovládacích panelech.
   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 
				


Jak potíže obejít

Chcete-li problém vyřešit, použijte jako hodnotu iterační větší datový typ.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části „ platí. Tento problém byl poprvé opraven v aplikaci Visual Studio .NET 2002 Service Pack 1.

Další informace

Následující program je příkladem chování. Jakmile vytvoříte pomocí výchozího nastavení kompilátoru pro uvolnění režimu tento ukázkový program, jej vytiskne Opakovat pouze jednou.
#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;
}
				

Vlastnosti

ID článku: 306083 - Poslední aktualizace: 30. ledna 2014 - Revize: 2.1
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbvs2002sp1sweep kbvs2002sp1fix kbbug kbfix kbqfe KB306083 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku: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