zoukankan      html  css  js  c++  java
  • c++ anonymous union,struct -- 匿名联合体和机构体

    c++ anonymous union,struct -- 匿名联合体和机构体

    结构体和联合体各自的基本用法不赘述,仅说一下他们匿名时访问的情况。如果是token不同,可以直接跨层访问。例子

    1. #include <iostream>
    2. using namespace std;
    3. struct zoo_obj{
    4.         string name;
    5.         union {
    6.                 unsigned int property;
    7.                 struct{ //plant
    8.                         unsigned int
    9.                                 hasLeaf:1,
    10.                                 hasFlower:1,
    11.                                 hasTrunk:1,
    12.                                 hasRattan:1;
    13.                 };
    14.                 struct { //animal
    15.                         unsigned int
    16.                                 isBackbone:1,
    17.                                 isOvipara:1,
    18.                                 hasLags:1,
    19.                                 hasWing:1;
    20.                 };
    21.         };
    22. };
    23. int main(void)
    24. {
    25.         zoo_obj peony = {"peony",0};
    26.         zoo_obj dog = {name:"dog",0};
    27.         dog.hasLags = true;
    28.         /* zoo_obj dog = {name:"dog",property:0};
    29.          * sorry, unimplemented: non-trivial designated initializers
    30.          * not supported
    31.          */
    32.         cout << peony.name << " hasLeaf " << peony.hasLeaf << endl;
    33.         cout << dog.name << " hasLags " << dog.hasLags << endl;
    34. }
    输出
    1. peony hasLeaf 0
    2. dog hasLags 1
    不支持像列子中name样的指定访问。如果指定了会报错
    1. sorry, unimplemented: non-trivial designated initializers not supported
     
     
  • 相关阅读:
    eshint的配置
    jsp 或 php 等view之中使用javascript简单处理的使用技巧
    响应式图片,在不同尺寸下切换不同张数
    swiper.js + jquery.magnific-popup.js 实现奇葩的轮播需要
    Websocket 协议的基本使用与示例
    vue手记
    docker 架构
    webpack基本使用
    vue组件、路由、事件
    vue基本使用
  • 原文地址:https://www.cnblogs.com/timssd/p/4781109.html
Copyright © 2011-2022 走看看