码迷,mamicode.com
首页 > 其他好文 > 详细

位域成员变量详解

时间:2017-09-20 12:11:06      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:blog   指定   种类型   stream   ++   span   32位   std   ring   

#include <iostream>
#include <string>
#include <string.h>
#include <stdio.h>
#include <malloc.h>
#include "list.h"

using namespace std;

/*
 位域成员变量:
该种形式只能出现于结构体或共用体的定义中,是位域定义的标准形式。
其使用方式为
struct name
{
    type var_name : n;
};
含义为,在结构体name汇总,成员变量var_name占用空间为n位。
n为正整数,其值必须小于type类型占用的位数。比如type如果是int,
占4字节32位,那么n必须是-16~15之间的整数。

注意:
    1. type只能为int、unsigne int这2种类型
    2. 不能在结构体共用体外定义位域变量
 */
typedef struct
{
  int num:4;   //指定num所占空间为16位,即2字节
}A;

int main(void)
{
    A   a;

    a.num=7;
    cout << a.num << endl;  //7
    a.num++;
    cout << a.num << endl;  //注意为: -8
    a.num++;
    cout << a.num << endl;  //-7

    cout << "------" << endl;
    a.num=8;    //超过-8~7的范围,则置为8
    cout << a.num << endl;  //-8
    a.num++;
    cout << a.num << endl;  //-7
    a.num++;
    cout << a.num << endl;  //-6
}

 

位域成员变量详解

标签:blog   指定   种类型   stream   ++   span   32位   std   ring   

原文地址:http://www.cnblogs.com/linuxAndMcu/p/7560374.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!