KORRIGERA: "Om" villkor inte fungerar korrekt när du kör en Visual C++-program som har utvecklats i Visual Studio 2010 SP1

Artikelöversättning Artikelöversättning
Artikel-id: 2719783 - Visa produkter som artikeln gäller.
Visa alla | Dölj alla

På den här sidan

Symptom

Föreställ dig följande:
  • Du kan använda Microsoft Visual Studio 2010 Service Pack 1 (SP1) för att utveckla ett program med Visual C++.
  • Källkoden för ansökan uppfyller följande villkor:
    • Källkoden innehåller en om-uttryck i en kapslad loop.
    • Om villkoret innehåller en kontroll som avgör om en variabel heltal är negativt och även en check som avgör om variabeln heltal är större än ett annat tal.
    • Kod som ligger utanför om villkoret har en linjär funktion som använder variabeln signerade.
  • Du kan kompilera programmet med hjälp av Visual Studio 2010 eller Kommandotolken.

    Obs! Du kan kompilera programmet medan en kompileringsalternativet är aktiverat.
  • Du kör programmet.
I det här fallet fungerar om-uttrycket inte korrekt.

Lösning

Information om snabbkorrigeringen

En snabbkorrigering är nu tillgänglig från Microsoft. Den är avsedd att lösa det problem som beskrivs i denna artikel. Använd den endast på datorer som just detta problem. Den här snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på nästa programuppdatering som innehåller den här snabbkorrigeringen.

Om du vill lösa problemet omedelbart kan du kontakta Microsoft Support för att få snabbkorrigeringen. En fullständig lista över telefonnummer till Microsoft Customer Support Services och information om supportkostnader finns på följande Microsoft-webbplats:
http://support.microsoft.com/contactus/?ws=support
Obs! I särskilda fall avbrytas avgifter som normalt har påförts för supportsamtal om en supporttekniker fastställer att en särskild uppdatering kan lösa ditt problem. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte uppfyller kraven för den aktuella uppdateringen.

Förutsättningar

Den här snabbkorrigeringen måste du ha Visual Studio 2010 SP1 är installerat.

Krav på omstart

Du behöver inte starta om datorn efter installation av snabbkorrigeringen om filerna som påverkas inte används under installationsprocessen. Vi rekommenderar att du stänger alla Visual Studio 2010-relaterade komponenter innan du installerar snabbkorrigeringen.

Ersättningsinformation

Den här snabbkorrigeringen ersätter inte några andra snabbkorrigeringar.

Filinformation

Den engelska versionen av den här snabbkorrigeringen har de filattribut (eller senare filattribut) som visas i följande tabell. Datum och tider för dessa filer anges i UTC (Coordinated Universal Time). När du visar filinformationen konverteras den till lokal tid. Om du vill se skillnaden mellan UTC-tid och lokal tid på Tidszon fliken i den Datum och tid På Kontrollpanelen.
För alla versioner av Visual Studio 2010
Dölj tabellenVisa tabellen
FilnamnFilversionFilstorlekDatumTidPlattform
C2.dll16.0.40219.4042,608,19213-Dec-201207: 24x 86
C2.dll16.0.40219.4042,494,52813-Dec-201204: 57x 86
C2.dll16.0.40219.4042,593,34413-Dec-201204: 57x 86
C2.dll16.0.40219.4042,962,49613-Dec-201204: 57x 64

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Mer Information

Mer information om Visual C++ /O alternativ finns på följande MSDN-webbplats:
Allmän information om /O alternativ
Om du vill återskapa det här problemet kör du ett C++-program som använder du följande kod:
#include "stdafx.h"
 
int main()
{
        for( int i = -1; i <= 3; i++ ) 
        {
               for( int j = -1; j <= 3; j++ ) 
               {
                      if (i >= 0 && i < 3 && j >= 0 && j < 3)
                      {
                            printf("%d\n", i * 3 + j);
                      }
               }
        }
        return 0;
}
När du kör programmet visas följande resultat:
-3
-2
-1
0
1
2
3
4
5
6
7
8
Men du förväntar dig följande resultat i den här situationen:
0
1
2
3
4
5
6
7
8

Egenskaper

Artikel-id: 2719783 - Senaste granskning: den 8 januari 2013 - Revision: 3.0
Informationen i denna artikel gäller:
  • Microsoft Visual Studio 2010 Service Pack 1 på följande plattformar
    • Microsoft Visual Studio 2010 Ultimate
    • Microsoft Visual Studio 2010 Professional
Nyckelord: 
kbqfe kbfix kbexpertiseadvanced kbhotfixserver kbsurveynew kbmt KB2719783 KbMtsv
Maskinöversatt
VIKTIGT: Denna artikel är översatt av Microsofts automatiska översättningsprogram och inte av en mänsklig översättare. För att Du skall ha åtkomst till alla artiklar i Knowledge Base på Ditt föredragna språk så är en del artiklar översatta av människor och en del artiklar av översättningsprogram. Tänk på att en artikel som är översatt av ett översättningsprogram inte alltid är perfekt. Artikeln kan innehålla fel ord, grammatik eller meningsbyggnad, ungefär som en utländsk talare kan göra misstag när han eller hon pratar med Dig på Ditt språk. Microsoft ansvarar inte för eventuella felaktigheter i översättningen, fel eller skador som orsakats av någon felöversättning av innehållet eller våra kunders användande av det översatta innehållet. Microsoft uppdaterar kontinuerligt mjukvaran för översättningsprogrammet.
Den engelska versionen av artikeln är följande: 2719783

Ge feedback

 

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