15.C基础_共用体、枚举

2024-08-24 20:44
文章标签 基础 15 枚举 共用

本文主要是介绍15.C基础_共用体、枚举,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

共用体

1、概述与定义

什么是共用体:

共用体又称联合体,是不同数据类型的数据可以使用共同的存储区域。因此同一时间下,只能访问一个共用体的成员,因为它们的空间同一个地方的。

共用体的定义:

共用体的定义与使用与结构体的定义完全一致,唯一的区别是内存大小分配不同

union 共用体名{共用体成员
};

共用体变量的定义:

共用体变量的定义与结构体变量的第一完全一致。

//方法1:正常定义结构体变量
union 共用体名 共用体变量名;//方法2:定义共用体时,定义共用体变量
union 共用体名{共用体成员列表
}变量名1,变量名2; //直接在这里写变量名,变量名之间用,隔开               

2、初始化共用体

一般情况初始化:

共用体中虽然成员有多个,但因为它们的空间一样,所以实际赋值是只需要赋值一个

//1.定义共用体变量时初始化
union 共用体名 共用体变量名 = {一个值};//2.定义共用体时,定义共用体变量的初始化
struct 共用体名{共用体成员列表
}变量名 = {一个值};

初始化共用体中的结构体:

这时的初始化类似结构体变量的部分初始化,指定某一个变量,然后初始化。但同样的,只能初始化一个值。

union 共用体名 共用体变量名 = {.成员 = 值
};

3、访问共用体变量

共用体变量的访问方法与结构体变量的访问方法完全一致。

访问共用体变量时,应该遵循赋值谁,就访问谁。尽管共用体成员的空间是一样的,强行访问也不会报错,但是逻辑上会有一些问题。

4、共用体大小

计算原则:

  • 要能够容纳的下最大的数据
  • 要是数据类型大小的整数倍,不是则需要补齐

举例:现在有一个共用体定义如下,计算它的大小。

union uTest{double a;int b;char c;char d[9];
}

 在这个共用体中,所需空间最大的是d,空间为9字节。占用空间最大的类型是double,空间为8字节。因为9不能被8整除,所以补齐到16。因此该共用体的大小为16。

枚举

1、定义

枚举类型的定义与结构体一样。成员需要用" , "隔开

enum 枚举名{枚举成员列表
};

在定义时,新的枚举的成员名与其他枚举的成员名有重复

2、枚举的赋值与打印值

赋值枚举变量只能赋值枚举中列出的值。

枚举变量的打印值并不是枚举出来的值,而是从0开始的整型(在未进行初始化情况下)

如果枚举定义时,进行了指定值,那么实际值将会从指定值开始。

在赋值时,枚举的成员的赋值可以一样。  

3、枚举大小

枚举的值实际上是一个整型,所以不论枚举成员有多少个,枚举大小都是4字节

这篇关于15.C基础_共用体、枚举的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1103558

相关文章

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

C#实现获得某个枚举的所有名称

《C#实现获得某个枚举的所有名称》这篇文章主要为大家详细介绍了C#如何实现获得某个枚举的所有名称,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... C#中获得某个枚举的所有名称using System;using System.Collections.Generic;usi

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件