错误:从int(*)(const char *,stat *)转换为unsigned int会丢失精度

时间:2016-06-29 06:47:01

标签: c++

我试图在32位和64位模式下编译以下代码。 但这里的问题是,32位没有问题,64位中存在编译错误。

请告诉我你在64位模式下成功编译的建议。

[
    {
        "somethinghere": "its value"
    },
   "somethingelse": "its value"
]

1 个答案:

答案 0 :(得分:3)

您成功收录了sys/stat.h,您可以访问该函数:int stat(const char *path, struct stat *buf);,您尝试将其转换为无符号的地址。在32位平台上,这是可以的(因为可能地址和unsigned都是32位值),但是对于64位,`unsigned ^(可能)是32位,地址是64位。这就是编译器抱怨丢失精度的原因。

查看有关stat:http://linux.die.net/man/2/stat

的更多信息

但实际上你为什么要在按位运算中转换函数的地址?