c++ anonymous union,struct -- 匿名联合体和机构体
c++ anonymous union,struct -- 匿名联合体和机构体
结构体和联合体各自的基本用法不赘述,仅说一下他们匿名时访问的情况。如果是token不同,可以直接跨层访问。例子
- #include <iostream>
- using namespace std;
- struct zoo_obj{
- string name;
- union {
- unsigned int property;
- struct{ //plant
- unsigned int
- hasLeaf:1,
- hasFlower:1,
- hasTrunk:1,
- hasRattan:1;
- };
- struct { //animal
- unsigned int
- isBackbone:1,
- isOvipara:1,
- hasLags:1,
- hasWing:1;
- };
- };
- };
- int main(void)
- {
- zoo_obj peony = {"peony",0};
- zoo_obj dog = {name:"dog",0};
- dog.hasLags = true;
- /* zoo_obj dog = {name:"dog",property:0};
- * sorry, unimplemented: non-trivial designated initializers
- * not supported
- */
- cout << peony.name << " hasLeaf " << peony.hasLeaf << endl;
- cout << dog.name << " hasLags " << dog.hasLags << endl;
- }
- peony hasLeaf 0
- dog hasLags 1
- sorry, unimplemented: non-trivial designated initializers not supported
c++ anonymous union,struct -- 匿名联合体和机构体的更多相关文章
- C和C++中结构体(struct)、联合体(union)、枚举(enum)的区别
C++对C语言的结构.联合.枚举 这3种数据类型进行了扩展. 1.C++定义的结构名.联合名.枚举名 都是 类型名,可以直接用于变量的声明或定义.即在C++中定义变量时不必在结构名.联合名.枚举名 前 ...
- 结构体struct、联合体union、枚举类型enum
1.c语言中的类型 1)内置类型——char,short,int,float,double: 2)用户自定义类型(UDT)——struct结构体,union联合体,enum枚举类型 2.内存对齐 2. ...
- 结构体struct和联合体union以及enum枚举体5的区别
下面来自wikipedia: In computer science, a union is a value that may have any of several representations ...
- 转:union 联合体(共用体)
转自:http://blog.csdn.net/xiao3404/article/details/22276485 2.共用体 2.1共用体的概念 共用体是一种构造类型的数据结构.在一个“共用体”内可 ...
- python3 第二十四章 - 函数式编程之Anonymous function(匿名函数)
匿名函数指一类无须定义标识符的函数或子程序.Python用lambda语法定义匿名函数,只需用表达式而无需申明.lambda语法的定义如下: lambda [arg1 [,arg2, ... argN ...
- SUCTF 2018——Anonymous(php匿名函数 \x00lambda_)
题目地址:http://45.76.173.177:23334/ <?php $MY = create_function("","die(`cat flag.php ...
- 嵌入式-C语言基础:联合体和共用体的概念
有时候同一块内存空间存放类型不同,不同类型的变量共享一块空间. 结构体和共用体的区别: (1)结构体元素有各自单独空间,共用体元素共享空间,空间大小由最大类型确定. (2)结构体元素互不影响共用体赋值 ...
- MDK KEIL 机构体初始化 . 点 成员 初始化, C99
C99介绍,参考这里:C89,C99: C数组&结构体&联合体快速初始化 MDK 设置: 只需添加 ”--c99"参数即可,如图:
- C++结构体struct与C语⾔结构体和C++引⽤&与传值的区别
写再最前面:摘录于柳神的笔记: (1)定义好结构体 stu 之后,使⽤这个结构体类型的时候,C语⾔需要写关键字 struct ,⽽C++⾥⾯可以省 略不写: (2)这个引⽤符号 & 要和C语⾔ ...
随机推荐
- 怎样为ubuntu eclipse 添加 GBK字符集
以前没有发现,最近把自己的代码靠到同学电脑上运行报错,发现是字符集的问题,一般来说 eclipse默认的是GBK编码,而ubuntu上默认是没有GBK编码的,所以ubuntu eclipse 上自然就 ...
- Linux定义系统提示符的变量:PS1
- android的fragments管理
FragmentManager 为了管理Activity中的fragments,需要使用FragmentManager. 为了得到它,需要调用Activity中的getFragmentManager( ...
- svn: keywords
在文件头里面加入下面的关键字: $Date$ $ID$ $Revision$ $Author$ 代码在svn提交时,先选中这几个关键字再提交. Date可能出现中文乱码: 在Control Panel ...
- sencha touch笔记(6)——路由控制(1)
做项目的时候在界面的跳转上遇到了挺大的问题,本来跳转不想通过路由来控制的,没办法,只能再去看一下路由的跳转方式了. 应用程序的界面发生改变后,可以通过路由让应用程序的界面返回到改变之前的状态,例如浏览 ...
- Python 第六篇(上):面向对象编程初级篇
面向:过程.函数.对象: 面向过程:根据业务逻辑从上到下写垒代码! 面向过程的编程弊:每次调用的时候都的重写,代码特别长,代码重用性没有,每次增加新功能所有的代码都的修改!那有什么办法解决上面出现的弊 ...
- 一、Nginx配置文件详解
配置文件介绍 主要有两部分:分别是 main:主体部分 http{}:虚拟主机配置部分 配置指令主要以分号结尾:配置语法:directive value1 [value2 ....] 支持使用的变量 ...
- Robot Framework与Web界面自动化测试学习笔记:定位到新窗口
在页面操作中,有时会需要打开新的窗口(新的网页不在当前窗口显示,而是在新的tab页显示), 比如利用 window.open("newurl") 或者 <a href=& ...
- POJ 1287:Networking(最小生成树Kruskal)
id=1287">Networking Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5976 Acce ...
- encode_json 会对给定的Perl的数据结构转换为一个UTF-8 encoded, binary string.
use JSON qw/encode_json decode_json/ ; use Encode; my $data = [ { 'name' => 'Ken' , 'age' => 1 ...