C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了[c++11]结构体字节对齐大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
//测试c++中结构体的字节对齐
#include <iostream>
#include <cmath>

using namespace std;
void vsVersion();
//example 1
struct Node1
{
    char a;
    int b;
    double c;
};
//example 2
struct Node2 
{
    char a;
    int b;
    char c;
};
//example 3
struct Node3
{

};
//example 4
struct Node4
{
    char a;
    int b;
    static double c;
};
//example 5

struct Inside 
{
    int a;
    double b;
    float c;
};
struct Node5 {
    char e[2];
    int f;
    short h;
    struct Inside inside;
};
//example 6
struct Node6 {
    char a;
    int b;
    float c;
    double d;
    int* p;
    char* pc;
    short e;
};

int main()
{
    Node1 n1;
    Node2 n2;
    Node3 n3;
    Node4 n4;
    Node5 n5;
    Node6 n6;
    vsVersion();
//宏定义:https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?redirectedfrom=MSDN&view=vs-2019
#ifdef _WIN64
    cout << "--------x64----------------" << endl;
    cout << "char:" << sizeof(char) << endl;
    cout << "short:" << sizeof(short) << endl;
    cout << "int:" << sizeof(int) << endl;
    cout << "double:" << sizeof(double) << endl;
    cout << "float:" << sizeof(float) << endl;
    cout << "char *:" << sizeof(char *) << endl;
    cout << "Node1 :" << sizeof(n1) << endl;
    cout << "Node2 :" << sizeof(n2) << endl;
    cout << "Node3 :" << sizeof(n3) << endl;
    cout << "Node4 :" << sizeof(n4) << endl;
    cout << "Node5 :" << sizeof(n5) << endl;
    cout << "Node6 :" << sizeof(n6) << endl;
#else
    cout << "--------x86----------------" << endl;
    cout << "char:" << sizeof(char) << endl;
    cout << "short:" << sizeof(short) << endl;
    cout << "int:" << sizeof(int) << endl;
    cout << "double:" << sizeof(double) << endl;
    cout << "float:" << sizeof(float) << endl;
    cout << "char *:" << sizeof(char*) << endl;
    cout << "Node1 :" << sizeof(n1) << endl;
    cout << "Node2 :" << sizeof(n2) << endl;
    cout << "Node3 :" << sizeof(n3) << endl;
    cout << "Node4 :" << sizeof(n4) << endl;
    cout << "Node5 :" << sizeof(n5) << endl;
    cout << "Node6 :" << sizeof(n6) << endl;

#endif


    
    cout << "hello world" << endl;
    return 0;
}

//确定IDE版本
void vsVersion()
{
    if (_MSC_VER == 1921 or _MSC_VER == 1922 or _MSC_VER == 1923)
    {
        cout << "vs2019" << endl;
    }
    else if (_MSC_VER == 1910 or _MSC_VER == 1911 or _MSC_VER == 1912 or _MSC_VER == 1913 or _MSC_VER == 1914 or _MSC_VER == 1915 or _MSC_VER == 1916)
    {
        cout << "vs2017" << endl;
    }
    else
    {
        cout << "others" << endl;
    }

}

[c++11]结构体字节对齐

[c++11]结构体字节对齐

大佬总结

以上是大佬教程为你收集整理的[c++11]结构体字节对齐全部内容,希望文章能够帮你解决[c++11]结构体字节对齐所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: