如果POD被包装在一个类中,它是否会产生相同的效果?

时间:2011-06-28 03:15:48

标签: c++ class wrapper pod

以下是两种不同的解释:

char c;  // 1
struct MyChar { char c; };  // 2

如果我new MyChar[100],它会在所有平台上分配100个字节吗?添加非virtual构造函数/析构函数和/或operator会对MyChar的大小产生影响吗?

2 个答案:

答案 0 :(得分:4)

MyCharc之后可能有未命名的填充字节,所以不,不能保证sizeof(MyChar)1

答案 1 :(得分:2)

在MSVC上,您可以使用:

#pragma pack(1)
struct MyChar 
{ 
    char c; 
}; 

// Restore
#pragma pack()