函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |