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
 
 

c++ anonymous union,struct -- 匿名联合体和机构体的更多相关文章

  1. C和C++中结构体(struct)、联合体(union)、枚举(enum)的区别

    C++对C语言的结构.联合.枚举 这3种数据类型进行了扩展. 1.C++定义的结构名.联合名.枚举名 都是 类型名,可以直接用于变量的声明或定义.即在C++中定义变量时不必在结构名.联合名.枚举名 前 ...

  2. 结构体struct、联合体union、枚举类型enum

    1.c语言中的类型 1)内置类型——char,short,int,float,double: 2)用户自定义类型(UDT)——struct结构体,union联合体,enum枚举类型 2.内存对齐 2. ...

  3. 结构体struct和联合体union以及enum枚举体5的区别

    下面来自wikipedia: In computer science, a union is a value that may have any of several representations ...

  4. 转:union 联合体(共用体)

    转自:http://blog.csdn.net/xiao3404/article/details/22276485 2.共用体 2.1共用体的概念 共用体是一种构造类型的数据结构.在一个“共用体”内可 ...

  5. python3 第二十四章 - 函数式编程之Anonymous function(匿名函数)

    匿名函数指一类无须定义标识符的函数或子程序.Python用lambda语法定义匿名函数,只需用表达式而无需申明.lambda语法的定义如下: lambda [arg1 [,arg2, ... argN ...

  6. SUCTF 2018——Anonymous(php匿名函数 \x00lambda_)

    题目地址:http://45.76.173.177:23334/ <?php $MY = create_function("","die(`cat flag.php ...

  7. 嵌入式-C语言基础:联合体和共用体的概念

    有时候同一块内存空间存放类型不同,不同类型的变量共享一块空间. 结构体和共用体的区别: (1)结构体元素有各自单独空间,共用体元素共享空间,空间大小由最大类型确定. (2)结构体元素互不影响共用体赋值 ...

  8. MDK KEIL 机构体初始化 . 点 成员 初始化, C99

    C99介绍,参考这里:C89,C99: C数组&结构体&联合体快速初始化 MDK 设置: 只需添加 ”--c99"参数即可,如图:

  9. C++结构体struct与C语⾔结构体和C++引⽤&与传值的区别

    写再最前面:摘录于柳神的笔记: (1)定义好结构体 stu 之后,使⽤这个结构体类型的时候,C语⾔需要写关键字 struct ,⽽C++⾥⾯可以省 略不写: (2)这个引⽤符号 & 要和C语⾔ ...

随机推荐

  1. C++0x简讯

    关于C++0x核心进展的一组简讯 刘未鹏 /文 C++的罗浮宫(http://blog.csdn.net/pongba) Concepts无疑是C++0x的杀手级特性之中的一个(也许称它“杀手级”另一 ...

  2. 蓝牙Profile的概念和常见种类

    蓝牙Profile Bluetooth的一个很重要特性,就是所有的Bluetooth产品都无须实现全部 的Bluetooth规范.为了更容易的保持Bluetooth设备之间的兼容,Bluetooth规 ...

  3. PHP - mysql使用参数数据

    "SELECT dg_id FROM dg_user WHERE dg_username = '{$clean['username']}' LIMIT 1","该用户已经 ...

  4. 解决项目打包过程检出项目出现 svn:e15500错误

    svn:E15500 is already a working copy for a different url 原因:文件夹含有svn信息的隐藏文件未删除 解决办法:把该文件夹删除掉,然后重新建立同 ...

  5. 高级UIKit-05(CoreData)

    [day06_1_CoreDataPerson]:保存person对象到coreData数据库 保存大量数据时用CoreData保存到数据库,数据库会存在documents目录下 操作步骤: 1.创建 ...

  6. Java正则表达式基本应用

    一.概述 正则表达式因为其强大的字符串处理能力,刚开始被被广泛地应用到各种UNIX工具中,如大家熟知的 Perl脚本语言 .后来正则表达式在各种 计算机语言 和各种应用领域得到了广泛的应用和发展,目前 ...

  7. 基于visual Studio2013解决C语言竞赛题之0614递归大元素

     题目 解决代码及点评 /************************************************************************/ /* 14. 编一个程 ...

  8. 数据结构读书笔记(三)(C语言)

    栈 顺序实现: 存储结构: #define STACK_INIT_SIZE 10 // 存储空间初始分配量 #define STACK_INCREMENT 2 // 存储空间分配增量 struct S ...

  9. SDL2源码分析6:拷贝到渲染器(SDL_RenderCopy())

    ===================================================== SDL源码分析系列文章列表: SDL2源码分析1:初始化(SDL_Init()) SDL2源 ...

  10. linux 压缩和解压文件

    一.压缩:20120715文件下面所有的文件 如下: tar -zcvf 20120715.tar.gz  20120715* 二.解压20120715.tar.gz压缩包 如下: tar -xzvf ...