首页 > 其他分享 >alignas

alignas

时间:2024-05-08 12:34:09浏览次数:13  
标签:字节 type alignas 对齐 声明 id

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

相关文章