user963241 user963241 - 1 month ago 6
C Question

Printf long long int in C with GCC?

How do I printf

long long int
and also
unsigned long long int
in C99 using GCC?

I have searched the other posts which suggest to use
but it gives these warnings:

warning#1: unknown conversion type character 'l' in format [-Wformat]|

warning#2: too many arguments for format [-Wformat-extra-args]|

For the following attempt:

#include <stdio.h>

int main()
long long int x = 0;
unsigned long long int y = 0;
printf("%lld\n", x);
printf("%llu\n", y);

nos nos

If you are on windows and using mingw, gcc uses the win32 runtime, where printf needs %I64d for a 64 bit integer. (and %I64u for an unsinged 64 bit integer)

For most other platforms you'd use %lld for printing a long long. (and %llu if it's unsigned). This is standarized in C99.

gcc doesn't come with a full C runtime, it defers to the platform it's running on - so the general case is that you need to consult the documentation for your particular platform - independent of gcc.