公告

Welcome

Skip to content

对齐:放在某个对齐数的整数倍地址上

  • 结构体的对齐数: 成员中的最大对齐数
  • 类型对齐数: 该成员占用空间的大小
  • 编译器对齐数: GCC没有

对于一个结构体来说:

  1. 成员的对齐数是min(结构体的对齐数(or成员最大对齐数), 类型对齐数, 编译器对齐数)
  2. 结构体对齐数是民min(结构体的对齐数,编译器对齐数)

GLSL与C++结构体

在GLSL中vec3的大小是12但是是按16字节对齐 sizeof(vec3)=12 alignof(vec3)=16

在CPP中glm::vec3 的大小是12但是是按16字节对齐 sizeof(vec3)=12 alignof(vec3)=16

因此glm::vec3和vec3是一一对应的

GLSL中bool的大小是4按4字节对齐, 因此CPP中要对bool添加 alignas(4)进行对齐,与GLSL的bool对应

上次更新于: