《C和指针》笔记8: 枚举类型
枚举 (enumerated)类型就是指它的值为符号常量而不是字面值的类型,它们以下面这种形式声明:
enum Jar_Type { CUP, PINT, QUART, HALF_GALLON, GALLON };
这条语句声明了一个类型,称为Jar_Type。这种类型的变量按下列方式声明:
enum Jar_Type milk_jug, gas_can, medicine_bottle;
如果某种特别的枚举类型的变量只使用一个声明,可以把上面两条语句组合成下面的样子:
enum { CUP, PINT, QUART, HALF_GALLON, GALLON }
milk_jug, gas_can, medicine_bottle;
这种类型的变量实际上以整型的方式存储,这些符号名的实际值都是整型值。这里CUP是0,PINT是1,以此类推。适当的时候,可以为这些符号名指定特定的整型值,如下所示:
enum Jar_Type { CUP = 8, PINT = 16, QUART = 32,
HALF_GALLON = 64, GALLON = 128 };
只对部分符号名用这种方式进行赋值也是合法的。如果某个符号名未显式指定一个值,那么它的值就比前面一个符号名的值大1。
枚举类型中的符号名被当作整型常量处理,声明为枚举类型的变量实际上是整数类型。这个事实意味着你可以给Jar_Type类型的变量赋诸如623这样的字面值,你也可以把HALF_GALLON这个值赋给任何整型变量。但是,你要避免以这种方式使用枚举,因为把枚举变量同整数无差别地混合在一起使用,会削弱它们值的含义。
参考
- 《C和指针》
相关文章:
《C和指针》笔记8: 枚举类型
枚举 (enumerated)类型就是指它的值为符号常量而不是字面值的类型,它们以下面这种形式声明: enum Jar_Type { CUP, PINT, QUART, HALF_GALLON, GALLON };这条语句声明了一个类型,称为Jar_Type。这种类型的变量按下列方式声明: e…...

Python爬虫框架之Selenium库入门:用Python实现网页自动化测试详解
概要 是否还在为网页测试而烦恼?是否还在为重复的点击、等待而劳累?试试强大的Selenium!让你的网页自动化测试变得轻松有趣! 一、Selenium库到底是什么? Selenium 是一个强大的自动化测试工具,它可以让你直…...
docker swarm 部署服务网络问题
docker swarm 服务部署问题 docker swarm 部署服务时可能会出现,启动服务特别慢的情况,甚至一个service 启动后,容器会长时间处于 preparing 状态,直到 状态切换成 running 状态后,才会启动下一个service。然后查询资…...
1.00001git源码clone后进行编译(带调试)
– 新建用户 useradd postgres passwd postgres – 用户加入sude组 先cd到/etc/sudoers目录下 由于sudoers文件为只读权限,所以需要添加写入权限,chmod uw sudoers vim sudoers 找到root ALL (ALL) ALL这一行,在下一行加入username ALL (A…...

使用StorageClass动态创建pv
rook-ceph安装部署到位后,就可以开始来尝试使用StorageClass来动态创建pv了。 有状态的中间件在kubernetes上落地基本上都会用到StorageClass来动态创建pv(对于云上应用没有那么多烦恼,云硬盘很好用,但是对于自己学习和练习来说还…...

数据结构(Java实现)-ArrayList与顺序表
什么是List List是一个接口,继承自Collection。 List的使用 List是个接口,并不能直接用来实例化。 如果要使用,必须去实例化List的实现类。在集合框架中,ArrayList和LinkedList都实现了List接口。 线性表 线性表(lin…...

性能优化维度
CPU 首先检查 cpu,cpu 使用率要提升而不是降低。其次CPU 空闲并不一定是没事做,也有可能是锁或者外部资源瓶颈。常用top、vmstat命令查看信息。 vmstat 命令: top: 命令 IO iostat 命令: Memory free 命令: 温馨提示:…...

【C++】map的奇葩用法:和函数结合
2023年8月26日,周六下午 今天才发现map居然还能这样用... #include <iostream> #include <map> #include <functional>void printOne() {std::cout << "已经打印出1" << std::endl; }void printTwo() {std::cout <<…...
关于JVM的参数类型
JVM参数类型,主要是可以分为三类。分别是: 标准参数 例如: -help-server-client-version-showversion-cp-classpath 等等,这类参数的特点是在jdk各版本里基本不会变的,相对稳定。 X参数 X参数也就是非标准化参数&am…...
HTTP协议中的Content-Type及其常见类型
什么是Content-Type? Content-Type是HTTP协议中的一个头部字段,用于指示请求或响应中所传输的实体的媒体类型。 为什么使用Content-Type? 使用Content-Type可以告知接收方如何解析和处理传输的数据,确保数据能够正确地被解析和…...

android Junit4编写自测用例
10多年的android开发经验,一直以来呢,也没有使用过android自带的测试代码编写。说来也惭愧。今天也花了点时间稍微研究了下。还挺简单。接下来就简单的说一下。 新建工程 直接默认新建一个工程,就会有两个目录androidTest和test(unitTest)两…...

arcgis:画一幅自己城市的shp地图
首先打开ArcGis10.6,点击带黄底的小加号,添加底图。 可以选择中国地图彩色版,然后双击,转动鼠标滑轮找到属于自己的城市。 点击-目录,在新建的文件夹里右击-新建-shapefile。 格式选择折线,先把主要河流道路…...
采购油封时要考虑的因素
对于依赖机械和设备的行业来说,油封的选择是一个关键的决定,以确保平稳运行并防止流体泄漏。由于有多种选择,了解购买油封时要考虑的关键因素对于确保适合特定应用至关重要。让我们深入研究一下在此选择过程中发挥关键作用的考虑因素。 1、运…...
【无标题】科目一笔记
载人超过核定人数 校车/公路客运汽车/旅游客运汽车 未达到20%,-6超过20%以上,-12 七座以上载客汽车 1. 超过20%以上未达到50%,-6 2. 超过50%以上未达到100%,-9 其他载客汽车 1. 超过20%以上未达到50%,-3 2. 超过50…...

java八股文面试[数据结构]——HashMap和HashTable区别
HashMap源码中的重要常量 DEFAULT_INITIAL_CAPACITY: HashMap的默认容量,16 MAXIMUM_CAPACITY: HashMap的最大支持容量,2^30 TREEIFY_THRESHOLD:Bucket中链表长度大于该默认值,转化为红黑树。 UNTREEIFY_THRESHOLD…...
乐趣无限:10款基于Pygame的经典游戏合集
引言 游戏开发一直是许多程序员和游戏爱好者追求的梦想。而Pygame作为一款功能强大的游戏开发库,为我们提供了实现各种有趣游戏的工具和接口。在本文中,我将向大家介绍10款基于Pygame的经典游戏合集,从简单的猜数字到刺激的飞机…...
php检测数组是否存在某个键,和是否存在某个变量
一、array_key_exists() array_key_exists() 是一个 PHP 内置的函数,用于判断数组中是否存在指定的键。该函数接收两个参数,第一个是键名,第二个是数组。 $arr array(name > Jack, age > 20, country > China);if (array_key_exi…...
c++中的const与constexpt的区别
c中的const与constexpr的区别 const const 是一种修饰符,用于声明一个只读的常量。它可以用于变量、函数参数和函数返回类型。声明为 const 的变量的值在初始化后就不能再改变。 适用场景: const 适用于声明运行时常量,在编译时无法确定值…...

android系统启动流程之SystemServer运行过程
SystemServer进程的启动流程:直接看代码: SystemServer是Java中的一个进程,执行入口是SystemServer.java.main(); SystemServer.java.main();-->new SystemServer().run();-->createSystemContext();//创建系统上下文:虽然SystemServe…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
嵌入式常见 CPU 架构
架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...