函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\boot\printf.c Create Date:2022-07-27 08:26:02
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:number

函数原型:static char *number(char *str, long num, int base, int size, int precision, int type)

返回类型:char

参数:

类型参数名称
char *str
longnum
intbase
intsize
intprecision
inttype
45  digits[16]等于"0123456789ABCDEF"
53  locase等于type按位与Must be 32 == 0x20
54  如果type按位与left justified type与等于pad with zero 的反
56  如果base小于2或base大于16则返回:NULL
58  c等于如果type按位与pad with zero 则'0'否则' '
59  sign等于0
60  如果type按位与unsigned/signed long
61  如果num小于0则
62  sign等于'-'
63  num等于负num
64  size自减
65  否则如果type按位与show plus
66  sign等于'+'
67  size自减
68  否则如果type按位与space if plus
69  sign等于' '
70  size自减
73  如果type按位与0x
74  如果base恒等于16则size减等于2
76  否则如果base恒等于8则size自减
79  i等于0
80  如果num恒等于0则tmp[i++]等于'0'
82  否则当num不等于0循环
84  tmp[i++]等于digits[__do_div(num, base)]按位或locase
85  如果i大于precisionprecision等于i
87  size减等于precision
88  如果非type按位与pad with zero left justified 的值则当size自减大于0循环
90  str自加等于' '
91  如果signstr自加等于sign
93  如果type按位与0x
94  如果base恒等于8则str自加等于'0'
96  否则如果base恒等于16则
97  str自加等于'0'
98  str自加等于'X'按位或locase
101  如果非type按位与left justified 的值则当size自减大于0循环
103  str自加等于c
104 i小于precision自减循环
105  str自加等于'0'
106 i自减大于0循环
107  str自加等于tmp[i]
108 size自减大于0循环
109  str自加等于' '
110  返回:str
调用者
名称描述
vsprintf