KdPrint((
"Unknown IoControlCode %#x\n",
io_stack->Parameters.DeviceIoControl.IoControlCode
));
有点奇怪。尖锐是什么意思?
KdPrint((
"Unknown IoControlCode %#x\n",
io_stack->Parameters.DeviceIoControl.IoControlCode
));
有点奇怪。尖锐是什么意思?
#指示另一种格式。因为x这意味着0x在输出之前。
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。
printf与说明符一起使用时,x如果要打印的值不是.#0x 0