博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存对齐
阅读量:4363 次
发布时间:2019-06-07

本文共 918 字,大约阅读时间需要 3 分钟。

32位CPU则往四个字节凑。所以创建结构体等类型时要注意内存对齐的原则书写,以免编译器申请不必要的内存。

typedef struct udp_data

{
    double d;  8
    char a;    4
    double b;  8
} UDP_PACKET;
typedef struct udp_data
{
    char d;    1
    char a;    3
    double b;  8
} UDP_PACKET;
typedef struct udp_data
{
    char d;    1
    char a;    3
    int b;     4
} UDP_PACKET;
typedef struct udp_data  
{
    double d;  8
    char a;    4
    int b;     4
} UDP_PACKET;
typedef struct udp_data  浪费内存
{
    char a;    4   ---》 char a;    1
    int b;     4   ---》 char c;    3
    char c;    4   ---》 int b;     4
    double d;  8   ---》 double d;  8
} UDP_PACKET;
/***************************************/
#include <stdio.h>
#include <string.h>
#define UDP_PACKET_DATA 1024
typedef struct udp_data
{
    char a;
    int b;
    char c;
    double d;
} UDP_PACKET;
int main()
{
    UDP_PACKET pack;
    printf("udp_data size:%d\n", sizeof(pack));
    printf("a:%p  b:%p\n", &pack.a, &pack.b);
    printf("b:%p  c:%p\n", &pack.b, &pack.c);
    printf("c:%p  d:%p\n", &pack.c, &pack.d);
}

转载于:https://www.cnblogs.com/kaijia9/p/3394950.html

你可能感兴趣的文章
[BZOJ]1027 合金(JSOI2007)
查看>>
poj 1696 Space Ant (几何 : 叉积 应用 + dfs)
查看>>
MySQL:按前缀批量删除表格
查看>>
Route学习笔记之Area的Route注册
查看>>
构建之法--软件工程师自我测评表
查看>>
电子书搜索
查看>>
SQO2008配置管理工具服务显示远程过程调用失败
查看>>
【HDOJ】1009 FatMouse' Trade
查看>>
谷歌跨域
查看>>
使用葡萄城报表,轻松实现高度精准的报表套打
查看>>
Linux命令
查看>>
unicode ascii 互转 函数 C实现 MultiByteToWideChar/WideCharToMultiByte 详解
查看>>
大三第一学期实验报告
查看>>
mysql远程链接
查看>>
nginx location配置
查看>>
Easy Install详细参数
查看>>
选课系统
查看>>
最简实例演示asp.net5中用户认证和授权(2)
查看>>
ubuntu rhythmbox乱码解决方法
查看>>
LeetCode题解之Univalued Binary Tree
查看>>