在C ++类层次结构中,“ align”是什么意思?

时间:2018-09-27 08:20:02

标签: c++ gcc

class Student{
public:
    int id;
    int age;
};
int main() {
    return 0;
}

如果我们使用gcc和-fdump-class-hierarchy选项编译这样的程序,则gcc将产生一个.class文件,如下所示:

Class Student
   size=8 align=4
   base size=8 base align=4
Student (0x0x7fbafc4a05a0) 0

编译命令:

g++ file.cpp -o file -fdump-class-hierarchy

显然size是类大小。但是alignbase alignbase size在这个文件中是什么意思?

1 个答案:

答案 0 :(得分:0)

对齐方式与计算机在内存中的存储位置(例如整数)有关,您的学生班级有两个。由于int通常为4个字节长,所以当int的表示形式以4的倍数对齐时,加载和存储可能会更有效。