菜鸟的天花板

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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的幂次,

 

  

 

posted on 2024-05-08 12:26  新年1234567  阅读(7)  评论(0编辑  收藏  举报