代码之家  ›  专栏  ›  技术社区  ›  Benjamin

你知道C语言字符串格式的%#x吗

  •  2
  • Benjamin  · 技术社区  · 14 年前
    KdPrint((
             "Unknown IoControlCode %#x\n",
                    io_stack->Parameters.DeviceIoControl.IoControlCode
            ));
    

    很奇怪。夏普是什么意思?

    3 回复  |  直到 14 年前
        1
  •  4
  •   anatolyg    6 年前

    printf文档说:

    字符%后跟零个或多个以下标志:

    该值应转换为另一种形式。 对于o转换,第一个字符 输出字符串的 如果不是0,则在0前面加前缀 已经)。对于x和x转换,a 将字符串0x(或X转换的0x)前置到 是的。对于a,a,e,e,f,f,g和g 转换,结果总是 包含小数点,即使没有 点出现 在这些转换的结果中(仅当后面有一个数字时)。 对于g和g转换,尾随 如果不是这样的话。对于其他 转换,结果未定义。

    here .

    所以对于 %#x 0x . 在哪里? %x 会屈服的 34ab , %#十 会屈服的 0x34ab

        2
  •  4
  •   Joachim Sauer    14 年前

    # 指示 an alternative format x 这意味着 0x 在输出前面。

        3
  •  3
  •   codaddict    14 年前

    printf 与说明符一起使用时 x , # 使输出带有前缀 0x 0 .