dynamicheart / os-labs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JOS Lab1

在提供的版本的代码中(老师提供的代码未做修改),目前发现了vprintfmt三个bug

  1. 对于有符号类型的数字,其实就是d类型,负数是先打印负号,再调用printnum函数的,但是printnum函数中包含了打印padding的逻辑,因此右对齐的数字可能会出现如下情况的情况,符号和数字间有空格。
右对齐的负数:-             1
  1. vprintfmt没有处理格式化字符串中空格的情况。空格只会对有符号类型(d)的数产生影响,而且如果有了+符号,那么空格符号会被忽视。

  2. 当左对齐符号'-'出现后,'0'符号会无效。

About