1. 简介
用于指定一个类型或一个对象的字节对齐方式
2. 语法
a. alignas(expression) // expression, 必须为一个整型常量表达式,且表达式的结果值必须为 0,或其他于 “对齐” 或 “扩展对齐” 有意义的值
b. alignas(type-id) // 等价于 alignas(alignof(type-id))
c. alignas(pack...) // 等价于 将多个 alignas(type-id) or alignas(expression) 放到一个声明中
3. 说明
a. alignas关键字可以应用于:
i. 一个类的声明或定义;
ii. 一个非位域类成员变量的声明;
iii. 一个变量的声明;
iv. 枚举类型的声明或定义
b. alignas关键字不可以应用于:
i. 函数的形参;
ii. catch语句中的异常参数
iii. 别名的声明
iv. 已用 register 关键字声明的对象
c. 当在一个声明中存在多个 alignas时,最终生效的是 其中最严格(最大)的非0 字节对齐方式 ,且要求该字节对齐方式 不弱(小)于 ailgnof(type-id)
d. 当对一个对象或类型的 alignas 声明,比 ailgnof(type-id) 弱(小),或比之前的另一个 对相同对象或类型的 alignas 声明 弱(小)时,该声明就被忽略; alignas(0) 总是被忽略
e. 指定的字节对齐方式,必须为 2的幂次,
标签:字节,type,alignas,对齐,声明,id From: https://www.cnblogs.com/newbird2021/p/18179368