文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>abc::c’ of null...gcc warning: invalid access to...

abc::c’ of null...gcc warning: invalid access to...

时间:2010-08-15  来源:ronilee

今天在使用offsetof函数的时候碰到了一个警告,警告如标题所示。

先看代码

class abc
{
public:

    void foo()
    {

    }

    abc()
    {

    }

    ~abc()
    {

    }
   

public:
    char a;
    int b;
    int c;
}__attribute__((__packed__));

int main(int argc, char *argv[])
{

    unsigned long n = (unsigned long)offsetof(abc, c);

    return 0;

}

在main函数中的第一行代码出现了如题所示的警告。

把main函数修改如下

int main(int argc, char *argv[])
{

    unsigned long n = (unsigned long)&(((abc *)(&0))->c);

    return 0;

}

结果还是在main函数中的第一行代码出现了如题所示的警告。可能gcc也是这么实现offsetof的吧。

最后,为了把警告去掉,把main函数修改成了这样

int main(int argc, char *argv[])
{

    unsigned long n = (unsigned long)&(((abc *)(&1))->c) - 1;

    return 0;

}

感觉有点傻,但是暂时找不到去掉这个警告的办法,先将就了。还望高人指点。

相关阅读 更多 +
排行榜 更多 +
开心动动脑安卓版 v1.0 手机版

开心动动脑安卓版 v1.0 手机版

休闲益智 下载
不良人破局手游下载

不良人破局手游下载

角色扮演 下载
云海之下手游下载

云海之下手游下载

角色扮演 下载