zoukankan      html  css  js  c++  java
  • c语言中结构体位段

    结构体中允许存在位段、无名字段以及字对齐所需的填充字段。这些都是通过在字段的声明后面加一个冒号以及一个表示字段位长的整数来实现。这些冒号后的整数规定了成员所占的位数。举例如下:  
    typedef struct def
    {
     char a : 4;
     char b : 4;
    }Def;

    void sizetest()
    {
     int size ;
     char test;
     Def Mdata;
     Mdata.a=0xf0; //会截断,只取到前四位
     Mdata.b=0x0f; //截断,取前四位
     memcpy(&test , &Mdata , 1);
     size = sizeof(Mdata); //大小为一个字节
     printf("0x%x ",Mdata.a);
     printf("0x%x ",Mdata.b);
     printf("0x%x ",test);
     printf("%d" , size);
     
    }    

    结果:
    0x00
    0x0f
    0xf0
    1
    (需要注意的是:测试机器是小端模式)

  • 相关阅读:
    Tarjan 算法 自学整理
    POJ 2395 Out of Hay
    Codevs 1557 热浪
    Codevs 2956 排队问题
    Codevs 1005 生日礼物
    集合
    奇怪的函数
    关押罪犯
    搭积木
    大数据
  • 原文地址:https://www.cnblogs.com/ju-an/p/3245670.html
Copyright © 2011-2022 走看看