Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A hibakereső két különböző kifejezést ismer: MASM-kifejezéseket és C++ kifejezéseket.
A súgódokumentációban szereplő példákban Microsoft Macro Assembler (MASM) kifejezéseket használunk, kivéve, ha másként van feltüntetve. A MASM-kifejezésekben a rendszer minden szimbólumot címként kezel.
A C++ kifejezések megegyeznek a tényleges C++ kódban használt kifejezésekkel. Ezekben a kifejezésekben a szimbólumok a megfelelő adattípusok.
Ha minden szintaxist használnak
Az alapértelmezett kifejezésértékelőt az alábbi módok egyikével választhatja ki:
A hibakereső elindítása előtt használja a _NT_EXPR_EVAL környezeti változót .
A hibakereső indításakor használja a -ee {masm|c++} parancssori lehetőséget .
A .expr (Kifejezésértékelő kiválasztása) paranccsal megjelenítheti vagy módosíthatja a kifejezésértékelőt a hibakereső futtatása után.
Ha nem használja az előző módszerek egyikét, a hibakereső a MASM-kifejezésértékelőt használja.
Ha a hibakereső állapot módosítása nélkül szeretne kiértékelni egy kifejezést, használhatja a ? (Kifejezés kiértékelése) parancs.
Az összes parancs és hibakeresési információ ablaka az alapértelmezett kifejezésértékelőn keresztül értelmezi az argumentumokat, a következő kivételekkel:
A ?? (C++ kifejezés kiértékelése) parancs mindig a C++ kifejezésértékelőt használja.
A Figyelő ablak mindig a C++ kifejezésértékelőt használja.
A Helyiek ablak mindig a C++ kifejezésértékelőt használja.
Egyes bővítményparancsok mindig a MASM-kifejezésértékelőt használják (más bővítményparancsok pedig csak numerikus argumentumokat fogadnak el a teljes kifejezések helyett).
Ha egy kifejezés bármely része zárójelben van, és a kifejezés elé két jelet (@@) szúr be, a kifejezést a kifejezés kiértékelője értékeli ki, amely ebben az esetben általában nem lenne használva.
A két jel (@@) lehetővé teszi, hogy két különböző kiértékelőt használjon egyetlen parancs különböző paramétereihez. Lehetővé teszi a hosszú kifejezések különböző részeinek kiértékelését is különböző módszerekkel. A kettőt a táblákba ágyazhatja. Minden alkalommal, amikor a két '@' jel megjelenik, átvált a másik kifejezésértékelőre.
Figyelmeztetés A C++ kifejezésszintaxis jól használható struktúrák és változók manipulálására, de nem alkalmas elemzőként a hibakereső parancsok paramétereihez. Ha hibakereső parancsokat használ általános célokra, vagy hibakereső bővítményeket használ, a MASM-kifejezés szintaxisát kell alapértelmezett kifejezésértékelőként beállítania. Ha egy adott paraméterrel kell rendelkeznie, használja a C++ kifejezés szintaxisát, használja a kettő a jelnél (@@) szintaxist.
A két különböző kifejezéstípusról további információt a Numerikus kifejezés szintaxisa című témakörben talál.
Számok a kifejezésekben
A MASM-kifejezésekben lévő számok az aktuális radix alapján vannak értelmezve. Az n (Számbázis beállítása) paranccsal az alapértelmezett radix értéke 16, 10 vagy 8 lehet. Minden előtag nélküli szám ebben az alapban lesz értelmezve. Az alapértelmezett radix felülírható a 0x előtag (hexadecimális), a 0n előtag (decimális), a 0t előtag (oktális) vagy a 0y előtag (bináris) megadásával.
A C++ kifejezésekben lévő számok tizedes törtként vannak értelmezve, hacsak nem ad meg másként. Hexadecimális egész szám megadásához adja hozzá a szám elé a 0x értéket . Oktális egész szám megadásához adjon hozzá 0 -t (nulla) a szám elé. (A hibakereső kimenetében azonban néha a 0n tizedes előtagot használják.)
Ha egyszerre több alapban szeretne megjeleníteni egy számot, használja a .formats (Show Number Formats) parancsot.
Szimbólumok a kifejezésekben
A két kifejezéstípus eltérően értelmezi a szimbólumokat:
A MASM-kifejezésekben a rendszer minden szimbólumot címként értelmez. Attól függően, hogy mire utal a szimbólum, ez a cím egy globális változó, helyi változó, függvény, szegmens, modul vagy bármely más felismert címke címe.
A C++ kifejezésekben a rendszer minden szimbólumot a típusának megfelelően értelmez. Attól függően, hogy a szimbólum mire utal, egész számként, adatszerkezetként, függvénymutatóként vagy bármilyen más adattípusként értelmezhető. A C++ adattípusnak (például nem módosított modulnévnek) nem megfelelő szimbólum szintaxishibát okoz.
Ha egy szimbólum nem egyértelmű, akkor a modul nevével és felkiáltójellel ( ! ) kell megelőzni. Ha a szimbólum neve hexadecimális számként értelmezhető, akkor a modul nevével és felkiáltójelével ( ! ) vagy csak felkiáltójellel előzheti meg. Annak megadásához, hogy egy szimbólum helyinek legyen szánva, hagyja ki a modul nevét, és a szimbólum neve előtt adjon meg egy dollárjelet és egy felkiáltójelet ( $! ). A szimbólumok értelmezéséről további információt a Szimbólumszintaxis és a Szimbólumegyezés című témakörben talál.
Operátorok a kifejezésekben
Minden kifejezéstípus eltérő operátorgyűjteményt használ.
A MASM-kifejezésekben használható operátorokról és azok elsőbbségi szabályairól további információt a MASM-számok és -operátorok című témakörben talál.
A C++ kifejezésekben használható operátorokról és azok elsőbbségi szabályairól további információt a C++ Számok és operátorok című témakörben talál.
Ne feledje, hogy a MASM-műveletek mindig bájtalapúak, a C++ műveletek pedig C++ típusú szabályokat követnek (beleértve a mutató aritmetikai skálázását is).
Néhány példa a különböző szintaxisokra: Vegyes kifejezési példák.