Formatbezeichner in C++
Dieses Thema gilt für folgende Anwendungsbereiche:
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro, Premium und Ultimate |
Beim Debuggen von systemeigenem Code im Überwachungsfenster oder im Dialogfeld Schnellüberwachung können Sie mithilfe von Formatbezeichnern das Format ändern, in dem ein Wert angezeigt wird.
(Die meisten Formatbezeichner sind nur für systemeigenen Code, aber Visual C# verfügt über einen begrenzten Satz Formatbezeichner. Weitere Informationen finden Sie unter Formatbezeichner in C#.)
Formatbezeichner können im Direktfenster, im Befehlsfenster und sogar in den Quellcodefenstern verwendet werden. Wird mit der Maus auf einen Ausdruck in einem dieser Fenster gezeigt, erscheint das Ergebnis in einem DataTip. DataTips spiegeln den Formatbezeichner in der DataTip-Anzeige.
Beispiel
Angenommen, nVar ist eine Ganzzahlvariable, und aus dem Überwachungsfenster wird ersichtlich, dass sie den Wert 0x0065 enthält. Um den Wert als Zeichen und nicht als ganze Zahl darstellen zu lassen, fügen Sie in der Spalte Name hinter dem Variablennamen den Zeichenformatbezeichner c ein:
nVar,c
Anstelle der ganzen Zahl 0x0065 wird in der Spalte Wert nun der Zeichenwert 101 'e' angezeigt.
Um einen Formatbezeichner auf Elemente eines Arrays oder Member eines Objekts anzuwenden, müssen Sie diesen direkt für jedes Element bzw. jeden Member festlegen. Der Bezeichner kann nicht auf das Array oder Objekt im Ganzen angewendet werden. Angenommen, Sie verfügen über das Array nArray und möchten die vier ersten Elemente im Zeichenformat anzeigen lassen. In diesem Fall würden Sie die folgenden Ausdrücke im Überwachungsfenster eingeben:
nArray[0],c
nArray[1],c
nArray[2],c
nArray[3],c
In den folgenden Tabellen sind die Formatbezeichner aufgeführt, die vom Debugger erkannt werden.
Bezeichner |
Format |
Ausdruck |
Angezeigter Wert |
---|---|---|---|
d,i |
dezimale ganze Zahl vom Typ signed |
0xF000F065, d |
-268373915 |
u |
dezimale ganze Zahl vom Typ unsigned |
0x0065, u |
101 |
o |
oktale ganze Zahl vom Typ unsigned |
0xF065, o |
0170145 |
x,X |
Hexadezimale ganze Zahl |
61541.x |
0x0000f065 |
l,h |
Präfix vom Typ long oder short für: d, i, u, o, x, X |
00406042,hx |
0x0c22 |
f |
Gleitkommazahl vom Typ signed |
(3./2.), f |
1.500000 |
e |
wissenschaftliche Notation vom Typ signed |
(3./2.), e |
1.500000e+000 |
g |
Gleitkommazahl oder wissenschaftliche Notation vom Typ signed, je nachdem, welche kürzer ist |
(3./2.), g |
1.5 |
c |
einzelnes Zeichen |
0x0065, c |
101 'e' |
s |
String |
0x0012fde8, s |
"Hello world" |
su |
Unicode-Zeichenfolge |
0x0012fde8, su |
"Hello world" |
s8 |
UTF-8-Zeichenfolge |
0x0012fde8, s8 |
"Hello world" |
hr |
HRESULT oder Win32-Fehlercode. (Der Debugger decodiert HRESULT-Werte nun automatisch, sodass der Bezeichner in diesem Fall nicht nötig ist. |
0x00000000L, hr |
S_OK |
wc |
Fensterklassenflag |
0x00000040, wc |
WC_DEFAULTCHAR |
wm |
Windows-Meldungsnummern |
0x0010, wm |
WM_CLOSE |
! |
Rohdatenformat, jegliche Ansichtsanpassungen für den Datentyp werden ignoriert |
i ! |
4 |
Die folgende Tabelle enthält Formatierungssymbole, die für Speicheradressen verwendet werden. Bezeichner für Speicheradressen können mit beliebigen Werten oder Ausdrücken verwendet werden, die als Speicheradresse ausgewertet werden.
Symbol |
Format |
Ausdruck |
Angezeigter Wert |
---|---|---|---|
ma |
64 ASCII-Zeichen |
ptr, ma |
0x0012ffac .4...0...".0W&.......1W&.0.:W..1...."..1.JO&.1.2.."..1...0y....1 |
m |
16 Bytes im Hexadezimalformat, gefolgt von 16 ASCII-Zeichen |
ptr, m |
0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
mb |
16 Bytes im Hexadezimalformat, gefolgt von 16 ASCII-Zeichen |
ptr, mb |
0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
mw |
8 Wörter |
ptr, mw |
0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000 |
md |
4 Doppelwörter |
ptr, md |
0x0012ffac 00CB34B3 80943084 308A22FF 00002657 |
mq |
2 Vierfachwörter |
ptr, mq |
0x0012ffac 7ffdf00000000000 5f441a790012fdd4 |
mu |
2-Byte-Zeichen (Unicode) |
ptr, mu |
0x0012fc60 8478 77f4 ffff ffff 0000 0000 0000 0000 |
Größenbezeichner für als Arrays angezeigte Zeiger
Wenn Sie einen Zeiger auf ein Objekt haben, das Sie als Array anzeigen möchten, können Sie eine ganze Zahl verwenden, um die Anzahl der Arrayelemente zu bestimmen:
ptr,10
Siehe auch
Aufgaben
Gewusst wie: Überwachen eines Ausdrucks im Debugger