Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
De viktigaste skillnaderna mellan utvärdering av MASM-uttryck och utvärdering av C++-uttryck är följande:
I ett MASM-uttryck är det numeriska värdet för en symbol dess minnesadress. I ett C++-uttryck är det numeriska värdet för en variabel dess faktiska värde, inte dess adress. Datastrukturer har inte numeriska värden. I stället behandlas de som faktiska strukturer och du måste använda dem i enlighet med detta. Värdet för ett funktionsnamn eller någon annan startpunkt är minnesadressen och behandlas som en funktionspekare. Om du använder en symbol som inte motsvarar en C++-datatyp (till exempel ett omodifierat modulnamn) uppstår ett syntaxfel.
MASM-uttrycksutvärderingen behandlar alla tal som ULONG64 värden. C++-uttrycksutvärderingen omvandlar tal till ULONG64 och bevarar typinformation för alla datatyper.
Med MASM-uttrycksutvärderaren kan du använda valfri operator tillsammans med valfritt tal. C++-uttrycksutvärderingen genererar ett fel om du använder en operator tillsammans med en felaktig datatyp.
I MASM-uttrycksutvärderingen utförs all aritmetik bokstavligen. I C++-uttrycksvärderaren skalas pekarearitmetiken korrekt och är inte tillåten när det är olämpligt.
Ett MASM-uttryck kan använda två understreck ( __ ) eller två kolon ( :: ) för att ange medlemmar i en klass. C++-uttrycksutvärderingen använder endast syntaxen för två kolon. Felsökningsprogramutdata använder alltid två kolon.
I ett MASM-uttryck bör du lägga till ett vidtecken (@) före alla utom de vanligaste registreringarna. Om du utelämnar detta vid tecknet kan registernamnet tolkas som ett hexadecimalt nummer eller som en symbol. I ett C++-uttryck krävs det här prefixet för alla register.
MASM-uttryck kan innehålla referenser till källrader. Dessa referenser anges med allvarliga accenter ( ` ). Du kan inte referera till källradsnummer i ett C++-uttryck.