1、问题描述
在使用printf、fprintf打印long long类型时报错
printf warning: unknown conversion type character 'l' in format [-Wformat=]
2、原因分析
“%lld” 和 “%llu” 是 linux 下 gcc/g++ 用于 long long int 类型 (64 bits) 输入输出的格式符。
而 “%I64d” 和 “%I64u” 则是 Microsoft VC++ 库里用于输入输出 __int64 类型的格式说明。
3、printf打印格式整理
符号属性 | 长度属性 | 基本型 | 所占位数 | 取值范围 | 输入符举例 | 输出符举例 |
---|---|---|---|---|---|---|
– | – | char | 8 | -2^7 ~ 2^7-1 | %c | %c 、 %d 、%o、%x |
signed | – | char | 8 | -2^7 ~ 2^7-1 | %c | %c 、 %d 、%o、%x |
unsigned | – | char | 8 | 0 ~ 2^8-1 | %c | %c 、 %d 、 %u |
[signed] | short | [int] | 16 | -2^15 ~ 2^15-1 | %hd | %d、%hd |