当前位置: 首页 > news >正文

C语言----共用体、枚举

目录

​编辑

共用体

1. 定义

2. 格式

注意:

枚举

1. 定义:

2. 格式:

3. 说明:

面试题:枚举和宏定义区别?


共用体

1. 定义

不同数据类型的数据可以使用共同的存储区域,这种数据构造类型称为共用体,简称共用,又称联合体。

2. 格式

union共用体名

{

成员列表;

};

注意:

1. 共用体成员在内存中使用共同的存储空间。由于共用体中各成员的数据长度往往不同,所以共用体变量在存储时总是按其成员中数据长度最大的成员占用内存空间。

2. 在共用体类型变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用

思考:如何验证大小端?

方式一:
int  num = 0x12345678;
char ch = (char)num;
printf("%#x\n", ch); //如果输出的是0x78则是小端
方式二:
int num = 0x12345678;
char *p = (char *)#
printf("%#x\n", *p)); //如果输出的是0x78则是小端

练习:通过共用体验证大小端。

union endion
{int num;char ch;
};
int main(int argc, char const *argv[])
{union endion en;en.num = 0x12345678;printf("%#x\n", en.ch); //如果输出的是0x78则是小端return 0;
}

 

枚举

1. 定义:

枚举是C语言中的一种构造数据类型,它可以用于声明一组常数。当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。比如,你可以用一个枚举类型的变量来表示季节,因为季节只有4种可能的取值:春天、夏天、秋天、冬天。

一个星期只有七天,一年只有十二个月,一个班每周有六门课程等

2. 格式:

enum 枚举类型名

{

valueName1,

valueName2,

valueName3,

......

};

3. 说明:

1)枚举值默认从 0 开始,往后逐个加 1(递增)

enum week{ Mon, Tues, Wed, Thurs, Fri, Sat, Sun };

2)也可以给每个名字都指定一个值:

enum week{ Mon = 1, Tues = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6, Sun = 7 };

3)简单的方法是只给第一个名字指定值:

enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun };

4)枚举是一种类型,通过它可以定义枚举变量

enum week a, b, c;

5)有了枚举变量,就可以把列表中的值赋给它

enum week a = Mon, b = Wed, c = Sat

6)枚举列表中的 Mon、Tues、Wed 这些标识符的作用范围是全局的,不能再定义与它们名字相同的变量。

7)Mon、Tues、Wed 等都是常量,不能对它们赋值,只能将它们的值赋给其他的变量。

笔试题:

面试题:枚举和宏定义区别?

相关文章:

C语言----共用体、枚举

目录 ​编辑 共用体 1. 定义 2. 格式 注意: 枚举 1. 定义: 2. 格式: 3. 说明: 面试题:枚举和宏定义区别? 共用体 1. 定义 不同数据类型的数据可以使用共同的存储区域,这种数据构造类…...

26.Java Lock 接口(synchronized 关键字回顾、可重入锁快速入门、Lock 对比 synchronized)

一、synchronized 关键字 1、synchronized 关键字回顾 synchronized 是 Java 中的关键字,是一种同步锁,它修饰的对象有以下几种 修饰一个类:其作用的范围是 synchronized 后面括号括起来的部分,作用的对象是这个类的所有对象 修…...

机器学习 学习知识点

机器学习 学习知识点 什么是消融实验(Ablation experiment)?num_step与batch_size的区别python glob.glob()函数认识python的条件判断之is not、is not None、is Nonetqdm介绍及常用方法softmax 激活函数。type_as(tesnor)Python OpenCV cv2.…...

GESP真题 | 2024年12月1级-编程题4《美丽数字》及答案(C++版)

描述 小杨有 n 个正整数,他认为一个正整数是美丽数字当且仅当该正整数是 9 的倍数但不是 8 的倍数。 小杨想请你编写一个程序计算个正整数中美丽数字的数量。 输入描述 第一行包含一个正整数 n,代表正整数个数 。 第二行包含 n 个正整数 a1, a2, a3…...

java并发之AQS

一、简介 AQS,全称:AbstractQueuedSynchronizer,是一个JDK提供的用于构建锁、同步器等线程协作工具类的框架,内部维护FIFO双向队列(双向链表实现)。 AQS重要属性: // 表示同步状态。它既可以表…...

4 种修复 IPhone 备份输入密码解锁的方法

您是否在 iTunes 中遇到过这样的消息:“输入密码以解锁您的 iPhone 备份”?出现这种情况是因为备份具有加密备份。当您通过 iTunes 为 iPhone 创建此备份时,您需要生成 iTunes 备份密码来保护和加密您的 iPhone 备份。当您想要更改 iPhone 备…...

选课(贪心)

小明是个好学的程序猿,他想在一天内尽可能多的选择课程进行学习。在下列课程中,他能选择的最多课程是几门? 输入格式: 第一行为一个整数n,表示课程总数。接下来每行为x,y,z表示课程名,开始时间…...

【深度学习】Java DL4J基于 LSTM 构建新能源预测模型

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s,热衷于探…...

【linux基础I/O(1)】文件描述符的本质重定向的本质

目录 前言1. 理解C语言的文件接口2. 操作文件的系统调用接口2.1 open函数详解2.2 close函数详解2.3 write函数详解2.4 read函数详解 3. 文件描述符fd详解4. 文件描述符的内核本质5. 怎样理解Linux下一切皆文件?6. 理解输出输入重定向7. 重定向的系统调用8. 总结 前言 “在Lin…...

微服务架构下的慢请求排查与优化策略

目录 一、分析请求路径 二、检查日志 三、进行时序分析 四、检查资源消耗 五、检查并发处理能力 六、检查网络连接 七、从根本上使用服务治理的方式解决问题 八、结语 在当今的数字化时代,企业为了应对快速变化的市场需求和日益增长的用户基数,纷…...

C++ 中 Unicode 字符串的宽度

首先,什么是 Unicode? Unicode 实际上是一个统一的文字编码标准,它出现目的是为了解决不同计算机之间字符编码不同而导致的灾难性不兼容问题。 Unicode 字符集与 Unicode 编码是两种不同的概念。Unicode 字符集实际是对进入标准的所有文字用…...

人工智能在SEO中的应用与关键词优化策略

内容概要 随着科技的迅猛发展,人工智能在搜索引擎优化(SEO)中的应用逐渐成为业界关注的热点。AI技术不仅可以有效提高关键词的优化策略,还能在提升内容效率、增强用户体验方面发挥重要作用。通过对相关技术的深入探讨&#xff0c…...

spring mvc源码学习笔记之四

pom.xml 内容如下 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/P…...

ruckus R510升级到Unleashe后不能访问

ruckus R510 是IPQ4019&#xff0c;升级到Unleashe&#xff0c;它弹窗提示 但是这个IP没办法用&#xff0c;访问不了AP。 必应了一下&#xff0c;官方提示用advance ip scanner扫描。 扫描持续好久&#xff0c;发现IP竟然是从主路由获得。 9090的端口不用填&#xff0c;甚至不…...

【游戏设计原理】47 - 超游戏思维

对于这条原理&#xff0c;我首先想到的是开放世界&#xff0c;或者探索性游戏&#xff0c;这是最能包容各类玩家的游戏类型。这类游戏定义了基本规则&#xff0c;玩家的可操作性很强。就像上图里的沙池一样&#xff0c;里面有滑梯&#xff0c;是规则性比较明确的&#xff0c;而…...

FastAPI vs Flask 专业对比与选择

FastAPI与Flask是两个流行的Python Web框架&#xff0c;它们在构建Web应用程序和API方面各有特点。以下是对这两个框架的详细比较&#xff1a; 一、设计理念与用途 Flask&#xff1a; 是一个轻量级的Python Web框架&#xff0c;基于Werkzeug WSGI工具箱和Jinja2模板引擎。设计…...

【信息系统项目管理师】【综合知识】【备考知识点】【思维导图】第十一章 项目成本管理

word版☞【信息系统项目管理师】【综合知识】【备考知识点】第十一章 项目成本管理 移动端【思维导图】☞【信息系统项目管理师】【思维导图】第十一章 项目成本管理...

xdoj-字符串-556,为什么字符不能被正常读入

目录 题目 代码 测试用例 the input the correct output 问题发现过程阐述 如果把line16中的数组大小11换成line17中的10 case 1 case 2 case 3 如果数组开成11 case4 代码分析 问题描述 Question1 Question2 题目 题目&#xff1a;连续数字字符串提取 问题描述…...

计算机网络——期末复习(5)期末考试样例1(含答案)

考试题型&#xff1b; 概念辨析&#xff15;个、计算与分析&#xff13;个、综合题&#xff13;&#xff0d;&#xff14;个 必考知识点&#xff1a; 概述&#xff1a;协议 体系结构 物理层&#xff1b;本次考核较少 链路层&#xff1a;CSMA/CD 退避二进制算法 &#xff0…...

Docker安装oracle数据库【最新版】

文章目录 1. 安装 Docker 环境2. 拉取 Oracle 镜像3. 查看镜像4. 创建容器5. 进入容器进行配置6. 进行软连接7. 配置 Oracle 环境变量8. 创建软连接9. 切换到 Oracle 用户10. 登录 SQL*Plus 并修改 sys、system 用户密码11. 重新启动数据库12. 解决 "Database Not Open&qu…...

基于STM32的智能门锁系统设计

目录 引言系统设计 硬件设计软件设计系统功能模块 用户身份验证模块开锁控制模块状态监控与报警模块数据存储与管理模块控制算法 用户身份验证算法开锁控制算法状态监控与报警算法代码实现 用户身份验证模块实现开锁控制模块实现状态监控模块实现系统调试与优化结论与展望 1. …...

【踩坑指南:2025年最新】如何在Linux(Ubuntu)启动第一个Scala Hello World程序(Scala3)

如何正确地写出Scala的第一个程序&#xff0c;并且利用Scala3的简洁特性&#xff1f; 在解释器中直接输出Hello world非常简单&#xff0c;只需要直接执行即可&#xff1a; scala> println("Hello World") Hello World 但如果我们希望编写一个脚本文件&#xf…...

SAP系统中的标准价、移动平均价是什么?有何区别?物料分类账的优点

文章目录 前言一、SAP系统中的价格控制二、移动平均价、标准价是什么&#xff1f;三、S价&#xff08;标准价&#xff09;的优势四、S价&#xff08;标准价&#xff09;的劣势五、V价&#xff08;移动平均价&#xff09;的优势六、V价&#xff08;移动平均价&#xff09;的劣势…...

9.类的定义与使用

类的定义构造函数(__init__)实例变量类变量方法(实例方法)类方法(classmethod)静态方法(staticmethod)属性装饰器(property)私有属性与方法继承多态方法重写super()函数类的文档字符串类的属性和方法访问控制 1.类的定义: 如int,list,tuple等等都是类,还可以通过class方法自己…...

【网络安全 | 漏洞挖掘】JS Review + GraphQL滥用实现管理面板访问

未经许可,不得转载。 正文 在映射目标范围后,我发现了一个用于管理的控制台界面,但没有注册功能。 于是我开始尝试: 1、模糊测试注册端点 -> 失败 2、在请求中将登录替换为注册 -> 再次失败 尝试均未奏效后,我决定冷静下来,重新思考方法并利用技术手段。 我观察…...

前端如何判断多个请求完毕

在前端开发中&#xff0c;经常会遇到需要同时发起多个异步请求&#xff0c;并在所有请求都完成后再进行下一步操作的情况。 这里有几个常用的方法来实现这一需求&#xff1a; 使用 Promise.all() Promise.all() 方法接收一个 Promise 对象的数组作为参数&#xff0c;当所有的…...

atrust异常导致ERR_NETWORK_CHANGED

首先因为工作需要不断安装卸载不同版本深信服的atrust。那么可能遇到和我一样的问题。 深信服的这种东西有点毛病&#xff0c;以前只是偶尔导致我局域网无法访问&#xff0c;我停止atrust后&#xff0c;他还有后台程序在后台不断更改我的适配器&#xff0c;在我局域网需要固定…...

【网络安全 | 漏洞挖掘】绕过电子邮件确认实现预账户接管

未经许可,不得转载。 文章目录 正文漏洞步骤赏金正文 我测试的应用程序有多个子域名: 1、account.example.com:处理用户账户管理。 2、project.example.com:管理用户拥有或被邀请的项目。 3、org.example.com:一个新的子域,用于管理多个项目的组织。 4、collaborator.ex…...

python3GUI--智慧交通监控与管理系统 By:PyQt5

文章目录 一&#xff0e;前言二&#xff0e;预览三&#xff0e;软件组成&技术难点1.软件组成结构2.技术难点3.项目结构 四&#xff0e;总结 大小&#xff1a;35.5 M&#xff0c;软件安装包放在了这里! 一&#xff0e;前言 博主高产&#xff0c;本次给大家带来一款我自己使…...

Java重要面试名词整理(十八):Sentinel

文章目录 服务雪崩及其解决方案技术选型: Sentinel or Hystrix 流量治理组件Sentinel**基于SentinelResource注解埋点实现资源保护** Sentinel控制台**限流阈值类型****流控模式****直接****关联** **流控效果**系统规则——系统自适应保护 限流算法**计数器法****滑动时间窗口…...