Frage

KdPrint((
         "Unknown IoControlCode %#x\n",
                io_stack->Parameters.DeviceIoControl.IoControlCode
        ));

Es ist komisch. Was bedeutet scharf bedeuten?

War es hilfreich?

Lösung

Die printf Dokumentation sagt:

  

Das Zeichen% wird durch Null oder mehrere der folgenden Flags gefolgt:

     

# Der Wert sollte auf eine ‚‚alternative Form‘umgewandelt werden‘.   Für o Umwandlungen, das erste Zeichen   der Ausgabezeichenfolge zu Null gemacht (durch   eine 0 prefixing, wenn es nicht Null war   bereits). Für Umwandlungen x und X ein   Nicht-Null-Ergebnis                 hat die Zeichenfolge ‚0x‘ (oder ‚0X‘ für X Umwandlungen) vorangestellt   es. Für a, A, E, E, F, F, G und G   Konvertierungen, wird das Ergebnis immer   enthalten einen Dezimalpunkt, auch wenn keine   Ziffern folgen (in der Regel eine Dezimalzahl   Punkt erscheint                 in den Ergebnissen dieser Conversions nur dann, wenn eine Ziffer folgt).   Für g und G Konvertierungen, Hinter   Nullen werden nicht aus dem Ergebnis entfernt,   da sie sonst der Fall wäre. Für andere   Umsätze wird das Ergebnis nicht definiert.

MSDN-Dokumentation auf die Fahnen sind hier .

so für %#x wird der Wert einfach mit 0x vorangestellt. Wo %x 34ab ergeben würde, %#x ergäbe 0x34ab.

Andere Tipps

# indcates ein alternatives Format . Für x Dies bedeutet, dass 0x mit dem Ausgang vorangestellt wird.

printf , wenn sie mit Spezifizierer x verwendet, # bewirkt, dass der Ausgang vorangestellt wird mit 0x versehen ist, der Wert gedruckt ist außer 0.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top