zoukankan      html  css  js  c++  java
  • 结构体中定义变量时,出现冒号+数字的形式(位域定义)

    该种形式出现于结构体或共用体的定义中,是位域定义的标准形式。
    其使用方式为
    struct name
    {
    type var_name : n;

    };
    含义为,在结构体name汇总,成员变量var_name占用空间为n位。
    n为正整数,其值必须小于type类型占用的位数。比如type如果是int,占4字节32位,那么n必须是1~31之间的整数。
    对于位域类型的成员,在赋值时如果实际值超过n位所能表达的范围,那么超出部分将会被截掉,只保存低位值。如int var:4,本身只有4位的空间,如果赋值var = 20, 由于20的二进制值为10100,实际为五位,这时var实际被赋值的就是低四位,0100,即4。

    由于C语言中的地址是针对字节计算的,所以位域类型的成员变量不支持取地址操作,即对于变量v, 如果存在位域成员变量var,那么&a.var是非法的,编译会出错。

    转自百度知道:https://zhidao.baidu.com/question/496863114900650484.html

  • 相关阅读:
    dijkstra最短路算法--模板
    k8s ansible自动化部署
    k8s persistenvolume 动态供给
    k8s 1.12二进制部署
    k8s 1.14.1 coredns部署
    django单表操作,增、删、改、查
    数据库基础
    TCP/IP协议 socket
    面向对象的程序设计
    模块
  • 原文地址:https://www.cnblogs.com/xing-ting/p/10057095.html
Copyright © 2011-2022 走看看