函数逻辑报告 |
Source Code:arch\x86\boot\printf.c |
Create Date:2022-07-27 08:26:07 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:vsprintf
函数原型:int vsprintf(char *buf, const char *fmt, va_list args)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| char * | buf | |
| const char * | fmt | |
| va_list | args |
| 129 | 如果fmt不等于'%'则 |
| 135 | flags等于0 |
| 136 | repeat : |
| 137 | fmt先自加 |
| 140 | flags或等于left justified |
| 141 | 转到:repeat |
| 146 | flags或等于space if plus |
| 147 | 转到:repeat |
| 152 | flags或等于pad with zero |
| 153 | 转到:repeat |
| 157 | field_width等于负1 |
| 160 | 否则如果fmt恒等于'*'则 |
| 161 | fmt先自加 |
| 163 | field_width等于va_arg(args, int) |
| 164 | 如果field_width小于0则 |
| 165 | field_width等于负field_width |
| 166 | flags或等于left justified |
| 171 | precision等于负1 |
| 172 | 如果fmt恒等于'.'则 |
| 173 | fmt先自加 |
| 176 | 否则如果fmt恒等于'*'则 |
| 186 | qualifier等于负1 |
| 193 | base等于10 |
| 197 | 如果非flags按位与left justified 的值则当field_width先自减大于0循环 |
| 199 | str自加等于' ' |
| 201 | 当field_width先自减大于0循环 |
| 202 | str自加等于' ' |
| 203 | 继续下一循环 |
| 209 | 如果非flags按位与left justified 的值则当len小于field_width自减循环 |
| 211 | str自加等于' ' |
| 214 | 当len小于field_width自减循环 |
| 215 | str自加等于' ' |
| 216 | 继续下一循环 |
| 239 | str自加等于'%' |
| 240 | 继续下一循环 |
| 248 | flags或等于Must be 32 == 0x20 |
| 255 | flags或等于unsigned/signed long |
| 257 | 退出 |
| 259 | 默认 |
| 269 | 否则如果qualifier恒等于'h'则 |
| 273 | 否则如果flags按位与unsigned/signed long 则num等于va_arg(args, int) |
| 279 | str等于'\0' |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |