SIZEOF宏,弥补sizeof不足(摘)

对POD

struct Data

{

    int a;

    int b[32];

char c[128];

};

C/C++不能够支持如下的语法:sizeof(Data::a); sizeof(Data::b); sizeof(Data::c[0]), sizeof必须要有存在的对象,才可以进行操作,这个不好

仿照offsetof宏,定义一个SIZEOF宏:#define SIZEOF(s,m) sizeof(((s *)0)->m)

在VC6下可以工作,其他环境不知

 

更好的办法(模板)

 

template<typename R , typename T>
size_t member_size( R T::* )
{
return sizeof(R);
}

posted on 2008-12-01 09:08 FongLuo 阅读(276) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2008年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

常用链接

留言簿

随笔分类(11)

随笔档案(79)

文章档案(1)

收藏夹(38)

学习网站

一般网站

最新随笔

搜索

积分与排名

最新评论

阅读排行榜