%qu
代表printf()
格式。
知道%u
是未签名的,%qu
从未遇到过。当谷歌搜索找到除%qu
答案 0 :(得分:4)
这不是标准的,在某些Unix(主要是BSD)中使用它表示无符号四字(64位)。因此,q
作为类型修饰符,就像l
一样。
答案 1 :(得分:2)
从C具有long long
类型开始,这是不应该使用的古老BSDism。从FreeBSD man page for printf
中,您可以看到,至少在FreeBSD上,它对应于非标准类型u_quad_t
,并且已被标记为已弃用。我不确定是否将u_quad_t
正式指定为unsigned long long
,但是可移植替换使用的是ll
类型的unsigned long long
修饰符,还是使用{{1 }}类型为PRIu64
的宏。