菜鸟的天花板

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

1. 简介

   是一个运算符,用于确定类型的对齐要求。

2.语法

  a. alignof(type_id/object)

3. 返回值:

  a. std::size_t                // 返回指定类型或对象在内存中的对齐边界,即该类型或对象所需的最小字节对齐。 它返回的是类型所需的对齐字节数,通常是一个2的幂次

4. 说明:

  a. 输入参数为 complete object type,返回该类型所需的最小字节对齐数,单位为byte,通常为一个2的幂次

  b. 输入参数为 以 complete  object type为元素的数组,返回数组元素所属类型所需的最小字节对齐数

  c. 输入参数为 complete  object type 的引用,返回被引用的complete  object type 所需的最小字节对齐数

5. 示例:

int main()
{
    std::cout << "Alignment of"  "\n"
        "- char                  : " << alignof(char) << "\n"
        "- int                   : " << alignof(int) << "\n"
        "- pointer               : " << alignof(int*) << "\n"
        "- short                 : " << alignof(short) << "\n"
        "- double                : " << alignof(double) << "\n"
        "- array<int>            : " << alignof(array<int, 10>) << "\n"
        "- set<int>              : " << alignof(set<int>) << "\n"
        "- list<int>             : " << alignof(list<int>) << "\n"
        "- map<int,int>          : " << alignof(map<int, int>) << "\n"
        "- vector<int>           : " << alignof(vector<int>) << "\n"
        "- queue<int>            : " << alignof(queue<int>) << "\n"
        "- tuple<double,int,int> : " << alignof(tuple<double, int, int>) << "\n"
        "- tuple<char,char,char> : " << alignof(tuple<char, char, char>) << "\n";

    return 1;
}

 

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