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
For portable code, the macros in inttypes.h may be used. They expand to the correct ones for the platform.
E.g. for 64 bit integer, the macro PRId64 can be used.
int64_t n = 7;
printf("n is %" PRId64 "\n", n);
Try to update your compiler, I'm using GCC 4.7 on Windows 7 Starter x86 with MinGW and it compiles fine with the same options both in C99 and C11.
You can try settings of code::block, there is a complier..., then you select in C mode.

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.