小编Dev*_*vyy的帖子

是否有一种巧妙的方法可以避免在 C++ 中使用嵌套类进行额外填充?

这些结构体align1andalign2包含相同的数据,但align1由于嵌套布局而具有更多填充。我怎样才能获得align2while的内存节省对齐,同时也使用像 in 这样的嵌套结构align1

int main() {
    struct align1 {
        struct {
            double d;    // 8 bytes
            bool b1;    //+1 byte (+ 7 bytes padding) = 16 bytes
        } subStruct;
        bool b2;        //+1 byte (+ 7 bytes padding) = 24 bytes
    };
    struct align2 {
        double d;        // 8 bytes
        bool b1, b2;    //+2 byte (+ 6 bytes padding) = 16 bytes
    };

    std::cout << "align1: " << sizeof(align1) << " …
Run Code Online (Sandbox Code Playgroud)

c++ padding inner-classes memory-alignment compiler-optimization

12
推荐指数
1
解决办法
737
查看次数