首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPE_ALIGNMENT()失败的示例

TYPE_ALIGNMENT()失败的示例
EN

Stack Overflow用户
提问于 2010-03-29 20:51:23
回答 1查看 473关注 0票数 0

我有一个关于C/C++中对齐的问题。在Determining the alignment of C/C++ structures in relation to its members中,迈克尔·伯尔发布了这样一个宏图:

代码语言:javascript
复制
#define TYPE_ALIGNMENT( t ) offsetof( struct { char x; t test; }, test )

在评论中,有人写道,对于非POD类型,这可能会失败。有没有人能给我一个这个失败的代码示例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-29 21:02:20

offsetof仅指定用于POD类型。如果类包含任何非POD的数据成员,则该类本身不是POD。因此,如果您的示例中的t是非POD类型,则不能保证其正常工作。

来自C++标准(18.1/5):

在本国际标准中,宏offsetof接受一组受限的type参数。type应为POD结构或POD联合。

因此,如果在非POD类型上使用offsetof,结果是未定义的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2537947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档