printf函数接受一个参数类型,例如%d或%i为带符号的整型。然而,我没有看到任何长值。
当前回答
这取决于,如果你指的是无符号长,格式化字符是“%lu”。如果您指的是带符号的长字符,则格式化字符为“%ld”。
其他回答
我认为明确地回答这个问题需要知道编译器的名称和版本,以及它正在编译的平台(CPU类型,操作系统等)。
把l(小写字母l)直接放在说明符前面。
unsigned long n;
long m;
printf("%lu %ld", n, m);
我想你的意思是:
unsigned long n;
printf("%lu", n); // unsigned long
or
long n;
printf("%ld", n); // signed long
我需要打印unsigned long long,所以我找到了这个作品:
unsigned long long n;
printf("%llu", n);
对于所有其他组合,我相信您使用printf手册中的表,为您试图打印的任何类型取行,然后列标签(就像我上面对printf("%llu", n)所做的那样)。
这取决于,如果你指的是无符号长,格式化字符是“%lu”。如果您指的是带符号的长字符,则格式化字符为“%ld”。