qq_45735316
2020-06-03 11:29
采纳率: 100%
浏览 166

这段代码是什么意思?怎么就输出结果是12了?

#include <iostream>
#include <string.h>
using namespace std;
struct
{
    int i;
    char c;
    float a;
} test;
int main()
{
    cout << sizeof(test);
}
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • qtchen_1988 2020-06-03 11:54
    已采纳
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • yunfan188 2020-06-03 12:01

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

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

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题