首页 > 其他分享 >05-枚举和共用体

05-枚举和共用体

时间:2023-06-24 16:57:17浏览次数:36  
标签:定义 05 union 联合体 int 枚举 共用

目录

一. 枚举

1.1 枚举的定义和优点

  • 枚举定义的值是常量, 可以被初始化一次, 如果没有手动初始化, 系统会将第一个常量自动初始化为0, 往后每个常量在前一个基础上 + 1
  • 枚举对比宏定义更加严谨有类型检查, 并且可以增加代码的可维护性.
#include <stdio.h>

enum Color
{
	read,
	blue,
	yellow = 9,
	green          //10
};
int main()
{
	enum Color c = blue;  //注意这里要写blue 不能写9, 虽然C中语法是允许的, 但是不符合语义. 在Cpp中会被检测出错误
	
	printf("%d, %d, %d, %d", read, c, yellow, green); // 0, 1, 9, 10
	return 0;
}

二. 联合体(共用体)

2.1 联合体定义

  • 联合体的内存大小最少是最大成员所占内存空间大小. (内存应是成员最大对齐数的整数倍.)
  • 联合体成员不能同时使用
 union Un
{
  char c;
  int i; // sizeof(union Un) --> 4
};

union 
{
  char c;
  int i;
}u; //匿名方式定义, 通常定义在函数内部.

2.2 共用体内存大小计算

  • sizeof(union Un) = 8
union Un
{
  int a;
  char arr[5]; 
};

标签:定义,05,union,联合体,int,枚举,共用
From: https://www.cnblogs.com/Deng-S/p/17501302.html

相关文章

  • java 异常处理,事务管理,事务共用,事务传递
    异常处理,事务管理,事务共用,事务传递1.在每个controller添加trycatch2.定义全局异常处理器/***全局异常处理器*/@RestControllerAdvicepublicclassGlobalExceptionHandler{@ExceptionHandler(Exception.class)//捕获所有异常publicResultex(Exception......
  • abc059d <博弈, 打表找规律>
    D-Alice&Brown如何打表要善于通过打表展示视觉信息,从而找到规律;#include<iostream>#include<algorithm>usingnamespacestd;typedeflonglongLL;intf[100][100];//0未定,1win,2lose//注意这里找先手必胜与必负的方式//当我的可以转移到任何一个必输态......
  • abc058d <公式化简>
    D-###原计算公式为:\[\sum\limits_{1\lei<j\len}\sum\limits_{1\lek<l\lem}(x_j-x_i)(y_l-y_k)\]可将xy拆分:\[\left(\sum\limits_{1\leqi<j\leqn}(x_j-x_i)\right)\left(\sum\limits_{1\leqk<l\leqm}(y_l-y_k)\right)\]仅计算x侧可进一步化简......
  • NC20573 [SDOI2011]染色
    题目链接题目题目描述给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。请你写一个程序依次完成这m......
  • 并查集的具体应用 CF1213G CF444E [HNOI2005]狡猾的商人
    每当我们看到“最大值最小”“路径上的最大最小值”等字眼时,我们就可以考虑并查集。我们可以尝试把这些问题转化为某种意义上按单调顺序的合并,利用并查集求解答案。以下时两例并查集的巧妙应用。CF1213GPathQueries注意“最大权值不大于q”,加上允许离线,我们可以把边按照权值......
  • [连载]Java程序设计(05)---任务驱动方式:简单的加密/解密系统
    任务:还是上一家公司,现在该公司在全国各地都设立了自己的分公司以拓展其核心业务,那么就需要利用互联网在全国各地的公司之间传递信息(我们假定这些信息就是文字信息),这些信息可能涉及一些商业机密,为此公司需要一套简单的加密和解密系统来避免直接在互联网上传递明文信息。目前拟定了两......
  • P1055 [NOIP2008 普及组] ISBN 号码
    [NOIP2008普及组]ISBN号码题目描述每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括$9$位数字、$1$位识别码和$3$位分隔符,其规定格式如x-xxx-xxxxx-x,其中符号-就是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码......
  • NC23051 华华和月月种树
    题目链接题目题目描述华华看书了解到,一起玩养成类的游戏有助于两人培养感情。所以他决定和月月一起种一棵树。因为华华现在也是信息学高手了,所以他们种的树是信息学意义下的。华华和月月一起维护了一棵动态有根树,每个点有一个权值。刚开存档的时候,树上只有0号节点,权值为0......
  • P1046 [NOIP2005 普及组] 陶陶摘苹果
    [NOIP2005普及组]陶陶摘苹果题目描述陶陶家的院子里有一棵苹果树,每到秋天树上就会结出$10$个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个$30$厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知$10$个苹果到地面的高度,以及陶陶把手伸直......
  • Android-Kotlin-枚举ENUM
    为什么要用枚举?枚举的好处有:1.使程序更容易编写和维护2.防止用户乱输入,是一种约束来看两个案例案例一星期:星期的枚举:enumclass类名{}packagecn.kotlin.kotlin_oop09/***定义星期的枚举类*/enumclassMyEnumerateWeek{星期一,星期二,星期三,星......