腾讯刷题笔记

笔记心得

腾讯刷题笔记 (sizeof问题)

  • struct的size问题
#include <iostream>
using namespace std;
struct xx{
    //long long _x1;
    int _x3;
    char _x2;
    char _x4[2];
   // static int _x5;
};
//int xx::_x5;
int main()
{
    cout<<sizeof(xx)<<endl;
    cout << "Hello world!" << endl;
    return 0;
}

参考内容内存对齐

32位操作系统
  1. sizeof问题
    • long 4位;
    • int 4位;
    • char 1位;
    • float 4位;
    • double 8位;
      在C语言中,struct 中的static属性并不会占用struct的存储空间
  2. 内存对齐问题
    • 在struct中,内存对齐会使用'数据成员'中最长的那一位,进行内存对齐;
  3. 顺序问题
    • 在代码中的变量定义顺序会影响sizeof的长度
    • 如上面 _x3与_x2目前的位置,得出的sizeof的长度为按照 int 类型进行内存对齐,此时的 sizeof 的长度为 4+1+2 -> 8;
    • 如果交换_x2与_x3的顺序的话,得到的sizeof的长度为 1(4)+4+2(4) = 12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值