zoukankan      html  css  js  c++  java
  • 结构体内存对齐模式

    结构体内存对齐模式各种情况详解

    #include <stdio.h>
    
    struct A
    {
    	int a; // 此时结构体占用4个字节
    	char b; // 此时结构体占用8个字节
    	char c; // 还是8个字节
    	char d; // 还是8个字节
    	char e; // 还是8个字节
    	char f; // 现在是12个字节  
    };
    
    struct B
    {
    	char a; // 1个字节
    	char b; // 2个字节
    	char c; // 3个字节
    };
    
    struct c
    {
    	char name[10]; // 10个字节
    	char a; // 11个字节
    	// 对于char型数组来说,会把数组每个元素当作一个char类型
    };
    
    struct d
    {
    	int name[10]; // 40个字节
    	char a; // 44个字节
    	char b; // 44个字节
    };
    
    struct e
    {
    	char a; // 1个字节
    	int b; // 8个字节
    	char c; // 12个字节
    	// 这种写法内存的消耗相比A就会变大
    };
    
    struct f
    {
    	char a; // 1
    	short b; // 4注意这里short占用的是剩下三个字节中的后两个
    	// 内存对齐总是以2的倍数对齐
    	char c; // 所以此时是6
    	int d; // 12
    	short e; // 16
    	char f; // 16
    };


  • 相关阅读:
    第三方应用调用应用市场和唤醒APP
    tp5 输入域名即访问指定页面
    反射概述(静态 VS 动态语言)
    自定义注解
    元注解
    内置注解
    什么是注解
    线程小结(代码)
    线程池
    信号灯法
  • 原文地址:https://www.cnblogs.com/zhangyaoqi/p/4591655.html
Copyright © 2011-2022 走看看