试图将 32 位代码移植到 64 位代码我想知道在移植方面是否有一些标准规则?
我的代码在 64 位环境中编译,现在我遇到了一些错误,例如
从指针转换为不同大小的整数 [-Werror=pointer-to-int-cast] for
x = (int32_t)y;
为此,我使用 x = (size_t)y; 我摆脱了错误,但这是正确的方法。同样在不同的位置,我必须将变量转换为(无符号长长)。例如
printf("Total Time : %5qu\n",time->compile_time
这给出了一个错误错误:格式 '%qu' 需要类型为 'long long unsigned int' 的参数,但参数 2 的类型为 (XYZ)。
为了解决这个问题,我做了类似的事情
printf("Total Time : %5qu\n",(unsigned long long) time->compile_time
这又是正确的吗?