我正在尝试使用以下内容打印一些 64 位无符号整数:
uint64_t x = 0xFFFFFFFFFFFFFFFF;
printf("Value: %016llx \n", x);
我得到这个回应:
0000000000000000lx
如果我将格式化字符串更改为 %016lx,我会收到使用错误类型的编译警告,并且它只打印低 32 位:
00000000FFFFFFFF
我的编译器选项中有 -std=c99 字符串,它应该强制执行 ll 选项,对吗?
作为参考,这是最新版本的 Silicon Labs 的 Simplicity Studio IDE 附带的 arm-none-eabi-gcc 编译器 (v4.7.3)。