I'm trying to print some 64-bit unsigned integers using something like this:
uint64_t x = 0xFFFFFFFFFFFFFFFF;
printf("Value: %016llx \n", x);
and I get this in response:
0000000000000000lx
If I change the formatting string to %016lx I get a compile warning for using the wrong type and it only prints the lower 32 bits:
00000000FFFFFFFF
I've got the -std=c99 string in my compiler options, which should enforce the ll option, right?
For reference, this is the arm-none-eabi-gcc compiler (v4.7.3) that ships with the latest version of Silicon Labs' Simplicity Studio IDE.