这段代码是什么意思?怎么就输出结果是12了?
#include <iostream>
#include <string.h>
using namespace std;
struct
{
    int i;
    char c;
    float a;
} test;
int main()
{
    cout << sizeof(test);
}

2个回答

这个涉及到一个结构体字节对齐规则的问题,你可以上网搜索一下 #pragma pack,你可以了解一下的。如果你要按数据类型本身所占的字节大小来控制
可以使用下面的方式:

#pragma pack(1)
struct
{
    int i;
    char c;
    float a;
} test;
#pragma pack()

至于其中的原因,你可以自行查阅资料。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问