设为首页 加入收藏

TOP

C语言字节对齐问题详解(二)
2015-11-19 23:06:49 来源: 作者: 【 】 浏览:9
Tags:语言 字节 问题 详解
A;
  • struct B stB; struct PB stPB;
  • ?
  • printf("sizeof(A) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stA), &stA.c, &stA.s, &stA.i); printf("sizeof(PA) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stPA), &stPA.c, &stPA.s, &stPA.i);
  • printf("sizeof(B) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stB), &stB.c, &stB.s, &stB.i); printf("sizeof(PB) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stPB), &stPB.c, &stPB.s, &stPB.i);
  • ?
  • return 0;
  • }
    /******************************************************************************
    Copyright by Javacode007, All rights reserved!
    Filename    : structsize.c
    Author      : Javacode007
    Date        : 2012-8-5
    Version     : 1.0
    Description : 结构体类型大小测试
    ******************************************************************************/
    #include 
        
         
    
    struct A
    {
        char c;
        short s;
        int i;
    };
    
    
    #pragma pack(1) /*指定按1字节对齐*/
    struct PA
    {
        char c;
        short s;
        int i;
    };
    #pragma pack()  /*取消指定对齐,恢复缺省对齐*/
    
    
    struct B
    {
        char c;
        int i;
        short s;    
    };
    
    #pragma pack(2) /*指定按2字节对齐*/
    struct PB
    {
        char c;
        int i;
        short s;    
    };
    #pragma pack()  /*取消指定对齐,恢复缺省对齐*/
    
    
    
    int main()
    {
        struct A stA;
        struct PA stPA;
        struct B stB;
        struct PB stPB;
    
    
        printf("sizeof(A)  = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stA), &stA.c, &stA.s, &stA.i);
        printf("sizeof(PA) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stPA), &stPA.c, &stPA.s, &stPA.i);
        printf("sizeof(B)  = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stB), &stB.c, &stB.s, &stB.i);
        printf("sizeof(PB) = %d, &c = %p, &s = %p, &i = %p\r\n", sizeof(stPB), &stPB.c, &stPB.s, &stPB.i);
        
    
        return 0;
        
    }
    
    
    
        

    ?


    输出结果:

    \

  • 首页 上一页 1 2 下一页 尾页 2/2/2
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    分享到: 
    上一篇C语言与汇编语言相互调用原理以及.. 下一篇反汇编一个简单的C程序

    评论

    帐  号: 密码: (新用户注册)
    验 证 码:
    表  情:
    内  容: