• 【004:结构体内存地址的连续问题】


    对于结构体内存地址的连续性问题测试

    代码如下,编辑器是为mingw32

    /**
    ********************************************************
    测试:关于结构体内存对齐和内存地址连续的问题
    ***********************************************************
    */
    
    
    #include <stdio.h>
    
    
    
    #pragma pack(push)
    #pragma pack(1)
    typedef struct _GPIO{
        int num;
        char ch;
        char hj;
        int key;
    }GPIO;
    #pragma pack(pop)
    
    typedef struct _USART{
        int num;
        char ch;
        char hj;
        int key;
    }USART;
    
    
    
    
    
    int main(void)
    {
        GPIO gpio;
        USART usart;
        printf("内存对齐的简单测试 
    ");
        printf("
     sizeof(int) = %d ",sizeof(int));
        printf("
     sizeof(char) = %d ",sizeof(char));
        printf("
     sizeof(gpio) = %d ",sizeof(gpio));
        printf("
     sizeof(usart) = %d ",sizeof(usart));
    
        printf("内存连续的简单测试 
    ");
        printf("
     gpio  0X%04X  0X%04X  0X%04X  0X%04X",&gpio.num,&gpio.ch,&gpio.hj,&gpio.key);
        printf("
     usart 0X%04X  0X%04X  0X%04X  0X%04X",&usart.num,&usart.ch,&usart.hj,&usart.key);
    
    
    
        return 0;
    }
    
    
    

    输出结果如下

     内存对齐的简单测试
    
     sizeof(int) = 4
     sizeof(char) = 1
     sizeof(gpio) = 10
     sizeof(usart) = 12
    
     内存连续的简单测试
    
     gpio  0X60FEA6  0X60FEAA  0X60FEAB  0X60FEAC
     usart 0X60FE98  0X60FE9C  0X60FE9D  0X60FEA0
    

    分析结果如下

    • struct的内存地址是连续的,与结构定义结构体变量的顺序相同;
  • 相关阅读:
    nginx超时重发
    excel另存为csv
    数据清洗——python定位csv中的特定字符位置
    pandas.read_csv参数整理
    Python 如何在csv中定位非数字和字母的符号
    ORACLE SEQUENCE用法(转)
    Python安装distribute包
    ex41习题 41: 来自 Percal 25 号行星的哥顿人(Gothons)
    利用python去除红章
    UNDO表空间
  • 原文地址:https://www.cnblogs.com/yexiaopeng/p/7570471.html
Copyright © 2020-2023  润新知