Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De belangrijkste verschillen tussen de evaluatie van MASM-expressies en de C++-expressie-evaluatie zijn als volgt:
In een MASM-expressie is de numerieke waarde van een symbool het geheugenadres. In een C++-expressie is de numerieke waarde van een variabele de werkelijke waarde, niet het adres. Gegevensstructuren hebben geen numerieke waarden. In plaats daarvan worden ze beschouwd als werkelijke structuren en moet u ze dienovereenkomstig gebruiken. De waarde van een functienaam of een ander toegangspunt is het geheugenadres en wordt behandeld als functie-aanwijzer. Als u een symbool gebruikt dat niet overeenkomt met een C++-gegevenstype (zoals een niet-gewijzigde modulenaam), treedt er een syntaxisfout op.
De MASM-expressie-evaluator behandelt alle getallen als ULONG64 waarden. De C++-expressie-evaluator cast getallen naar ULONG64 en behoudt typegegevens van alle gegevenstypen.
Met de MASM-expressie-evaluator kunt u elke operator samen met een willekeurig getal gebruiken. De C++-expressie-evaluator genereert een fout als u een operator samen met een onjuist gegevenstype gebruikt.
In de MASM-expressie-evaluator wordt alle rekenkundige bewerkingen letterlijk uitgevoerd. In de C++-expressie-evaluator wordt pointer-arithmetic correct geschaald. Het wordt niet toegestaan wanneer het ongepast is.
Een MASM-expressie kan twee onderstrepingstekens ( __ ) of twee dubbele punten ( :: ) gebruiken om leden van een klasse aan te geven. De C++-expressie-evaluator maakt alleen gebruik van de syntaxis van twee dubbele punten. De foutopsporingsprogramma-uitvoer maakt altijd gebruik van twee dubbele punten.
In een MASM-expressie moet u een at-teken (@) plaatsen voor alle registers behalve de meest voorkomende registers. Als u dit weglaat bij teken, kan de registernaam worden geïnterpreteerd als een hexadecimaal getal of als symbool. In een C++-expressie is dit voorvoegsel vereist voor alle registers.
MASM-expressies kunnen verwijzingen naar bronlijnen bevatten. Deze verwijzingen worden aangegeven met grave accenten ( ` ). U kunt niet verwijzen naar bronregelnummers in een C++-expressie.