文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
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;

}

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

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载