对于可能基本的问题感到抱歉,但我正在尝试理解一些代码,而我无法理解这个(%016llx
)占位符的含义。
我知道%x是十六进制编码,据我所知,两者之间的数字应该是数字和0
填充;但我无法解码016ll
序列,谷歌搜索没有多大帮助,只是展示了一个与gcc有某种联系的例子。
鉴于我是一名几乎没有经验的程序员,你能帮助我吗?
答案 0 :(得分:6)
description of fprintf()
in the C99 Standard告诉我们%016llx
转换规范由
%
字符0
标志16
为“最小字段宽度”ll
为“长度修饰符”x
转换说明符 所以,总的来说,这意味着用十六进制表示法写一个unsigned long long int
,占用至少16个位置,填充0
。
答案 1 :(得分:5)
ll
表示该参数将被解释为相应签名的long long
int
。 x
表示十六进制,0
表示输出为零填充,16
表示要打印的数字的宽度。
答案 2 :(得分:2)
ll
(ell-ell)代表long long
。你对其他人是对的,这意味着:
long long
数字(来自堆栈)