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