首页 > 其他分享 >alignof

alignof

时间:2024-05-08 11:26:22浏览次数:9  
标签:字节 alignof object 对齐 type complete

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;
}

 

标签:字节,alignof,object,对齐,type,complete
From: https://www.cnblogs.com/newbird2021/p/18179198

相关文章