32位的arm平台,部分代码如下:
unsigned long a = 0x200000;
printf("0x%08lx\n", a);
printf("0x%016llx\n", (unsigned long long)a);
uboot下,输出结果分别为(多次运行一直为此):
0x00200000
0x00200000800740000
启动内核,测试结果输出分别为:
0x00200000
0x0000000000200000
编译内核和uboot的gcc一致,为何uboot下32位unsigned转换为64位,输出出现错误?