質問

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

それは奇妙だ。シャープとはどういう意味ですか?

役に立ちましたか?

解決

printfドキュメントには次のように書かれています。

文字%の後に、次のフラグのゼロ以上が続きます。

# 値は「代替フォーム」に変換する必要があります。 O変換の場合、出力文字列の最初の文字はゼロになります(既にゼロでない場合は0をプレフィックスすることにより)。 XおよびX変換の場合、ゼロ以外の結果には、文字列 '0x'(またはx変換の場合は '0x')があります。 a、a、e、e、f、f、g、およびg変換の場合、結果には桁が続く場合でも、結果には常に小数点が含まれます(通常、小数点は、それらの変換の結果に、aの結果に表示されます。桁が続きます)。 GおよびG変換の場合、後続のゼロは、そうでなければ結果から削除されません。他の変換の場合、結果は未定義です。

フラグ上のMSDNドキュメントはそうです ここ.

だから %#x 値は単純にプレフィックスされています 0x. 。どこ %x 降伏します 34ab, %#x 降伏します 0x34ab.

他のヒント

# indcates 代替形式. 。にとって x この意味は 0x 出力に加えられます。

printf 指定子とともに使用する場合 x, # 出力をプレフィックスします 0x 印刷される値があれば 以外 0.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top