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

C++之枚举与宏定义

1 枚举enum

C++的枚举类型可以用来表示一组有限且固定的值。比如在如下代码中:

enum Color { RED, GREEN, BLUE };

定义了Color的枚举类型,分别对应三种不同的颜色。C++编译器会为枚举类型的常量分配整数值,从0开始递增。因此,在这个例子中,RED将被分配值为0,GREEN将被分配值为1,BLUE将被分配值为2。当然也可以通过指定数值进行赋值:

enum Color { RED = 1, GREEN = 2, BLUE = 3 };

2 宏定义#define

在C++中,宏定义可以用来在编译时进行文本替换和处理。

  • 宏定义:宏定义是C++预处理器的一个功能,它可以在编译时进行文本替换。宏定义的基本语法可以分宏定义变量和宏定义函数。
//宏定义变量
#define 宏名称 替换文本//宏定义函数
#define ADD(a, b) (a + b)

注意:对于定义的函数可能会存在混合类型运算的情况,比如a是int类型而b是float类型会引发错误。

当你使用这个宏时,比如 ADD(5, 3),预处理器会将其替换为 (5 + 3),即8。

但是,如果你给这个宏传递不同类型的参数,比如 ADD(5, 3.0),这会引起一个编译错误。这是因为预处理器在宏展开时不会进行任何类型检查或转换。在这种情况下,编译器会报出一个混合类型运算的错误,因为 5 是整数,而 3.0 是浮点数。

相关文章:

C++之枚举与宏定义

1 枚举enum C的枚举类型可以用来表示一组有限且固定的值。比如在如下代码中: enum Color { RED, GREEN, BLUE };定义了Color的枚举类型,分别对应三种不同的颜色。C编译器会为枚举类型的常量分配整数值,从0开始递增。因此,在这个…...

DAPP开发【09】NFT交易市场开发(hardhat测试)

测试文件下新建market.js文件 扁平化,将所有依赖放在tmp.sol,可以去给他人使用 npx hardhat flatten > tmp.sol 测试文件 const {expect} require(chai); const {ethers} require(hardhat);describe(Market,async function(){//定义三个合约&a…...

【Spring Boot】如何通过RestTemplate获取另一个服务的接口返回信息

背景 在查询订单信息的时候,需要获取用户的信息,同时订单和用户分属于不同的服务中,并且服务的数据库的数据分开的,其直接连接数据库并操作数据库是不可以的。那我们可以通过RestTemplate对象请求另一个服务的API接口获取相关的响…...

文字识别(OCR)专题——基于NCNN轻量级PaddleOCRv4模型C++推理

前言 PaddleOCR 提供了基于深度学习的文本检测、识别和方向检测等功能。其主要推荐的 PP-OCR 算法在国内外的企业开发者中得到广泛应用。在短短的几年时间里,PP-OCR 的累计 Star 数已经超过了32.2k,常常出现在 GitHub Trending 和 Paperswithcode 的日榜…...

❀My学习Linux命令小记录(14)❀

目录 ❀My学习Linux命令小记录(14)❀ 56.man指令 57.whatis指令 58.info指令 59.--help指令 60.uname指令 ❀My学习Linux命令小记录(14)❀ 56.man指令 功能说明:查看Linux中的指令帮助。 (ps.man命…...

SqlServer存储过程中使用in

第一步:创建测试存储过程: CREATE PROCEDURE [dbo].[test] deptCode varchar(MAX)AS BEGINSELECT * from DEPT_INFO_A where DEPT_CODE in (deptCode)END 此存储过程只是一个简单的查询 第二步测试: 传入的 deptCode为:101200…...

Selenium+Unittest+HTMLTestRunner框架更改为Selenium+Pytest+Allure(二)

1 代码框架 整体项目结构如图: Common:公共库 Logs: 日志目录 Page: 页面元素 Report:测试报告 TestCase:测试用例 TestData: 测试数据 2 单模块运行 直接上代码: # -*- coding…...

Kotlin Lambda使用

Kotlin Lambda使用 fun main() /*: Unit*/ {// Lambda会慢慢的难度升级// Kotlin Unit Java void// TODO 下面全部都是函数声明, 既然是函数声明,就不能调用// 函数的声明 用lambda去描述函数的声明val method1 : () -> Unitval method2 : (Int, In…...

华容道问题求解第一部分_思路即方案设计

一、前言 华容道是一种传统的益智游戏,通常由一个长方形木板和若干个方块组成。其中包括一个或多个不同颜色的方块(也称为车块)和其他大小相同的方块(也称为障碍块)。游戏的目标是将车块从木板的一个端点移动到另一个…...

测试---UI自动化测试介绍

1、什么是自动化测试 概念:由程序代替人工进行系统校验的过程。--------计算机自己执行,好比手机上安装一个软件软件微信,抖音,微博之类的,在应用商城里面,下载对应app后,手机系统程序会自动安…...

DHCP Host Name

文章目录 前言DHCP OptionOption (12) Host Namednsmasq 前言 打开路由器页面,看到下面连接的设备,有的显示设备名称 Tmall-Genie、ESP-C37CE8,而有的直接显示 MAC 地址 D2:B0:XX:XX:XX:XX。 这个名称是哪里来的呢? 这就是我们今…...

uniapp到底用什么ui框架最合适-关于uni-app的ui库、ui框架、ui组件

文章目录 直接看答案关于uni-app的ui库、ui框架、ui组件组件的概念扩展组件的选择uni ui如何使用uni ui 综上,官方对组件的使用建议是:附录:其他全端兼容ui库参考文章: 直接看答案 如果想自己纯手写,直接用内置组件。…...

Flask 最佳实践(二)

Flask是一个轻量级而灵活的Web框架,提供了足够的自由度让开发者根据项目的需求进行定制。然而,为了在大型项目中保持代码的可维护性和可扩展性,建议采用以下一些建议的最佳实践。 在上一篇博客中,讲述了项目结构、蓝图相关的最佳实…...

【MATLAB源码-第93期】基于matlab的白鲸优化算法(BWO)和鲸鱼优化算法(WOA)机器人栅格路径规划对比。

操作环境: MATLAB 2022a 1、算法描述 白鲸优化算法(BWO) 白鲸优化算法是受到白鲸捕食和迁徙行为启发的一种算法。其主要特点和步骤包括: 1. 搜索食物(全局搜索):算法模仿白鲸寻找食物的行为。…...

nodejs微信小程序+python+PHP在线购票系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...

卷积神经网络训练情感分析

文章目录 1 CNN在自然语言的典型应用2 代码解释3 建议 1 CNN在自然语言的典型应用 卷积的作用在于利用文字的局部特征,一个词的前后几个词必然和这个词本身相关,这组成该词所代表的词群词群进而会对段落文字的意思进行影响,决定这个段落到底…...

github新建项目

参考链接:Github上建立新项目超详细方法过程 在这里新建一个repositories 接下来就选择相关的信息: 然后create a new就行了 接下来需要创建文件:(同时通过upload上传文件) 每次最多上传100个文件,然后保…...

CRC(循环冗余校验)直接计算和查表法

文章目录 CRC概述CRC名词解释宽度 (WIDTH)多项式 (POLY)初始值 (INIT)结果异或值 (XOROUT)输入数据反转(REFIN)输出数据反转(REFOUT) CRC手算过程模二加减&am…...

【算法思考记录】力扣2952. 需要添加的硬币的最小数量【C++,思路挖掘,贪心与证明】

原题链接 文章目录 需要添加的硬币的最小数量:贪心算法实现题目概述示例分析 关键思路分析贪心算法的优化选择证明案例推演与算法实现 C 实现结论 需要添加的硬币的最小数量:贪心算法实现 题目概述 在这个困难难度的算法题中,我们要解决的…...

用友NC JiuQiClientReqDispatch反序列化RCE漏洞复现

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友 NC JiuQiClientReqDispatch 接口存在…...

【信息科学与工程学】信息科学领域工程——第二篇 材料工程10 光学材料 (1) (光通信必学必会)

表1:光学材料知识库 第一部分:光学基础理论与数学模型 编号 算法/策略名称和伪代码/数学方程式 核心数学描述/规律 关键参数/变量 物理/化学/工程意义/控制目标 典型应用场景 优点与局限 关联知识连接点 1.1.1 麦克斯韦方程组 ∇D = ρ_f ∇B = 0 ∇E = -∂B/∂t ∇…...

ACID [Atomicity, Consistency, Isolation, Durability]

ACID [Atomicity, Consistency, Isolation, Durability] 原子性、一致性、隔离性、持久性package further.zwf.acid;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException;/*** MySQL 事务示例&am…...

Miniblink49:如何在5分钟内将浏览器内核嵌入你的C++应用?

Miniblink49:如何在5分钟内将浏览器内核嵌入你的C应用? 【免费下载链接】miniblink49 a lighter, faster browser kernel of blink to integrate HTML UI in your app. 一个小巧、轻量的浏览器内核,用来取代wke和libcef 项目地址: https://…...

【技术底稿 35】低配单机混跑 Dev/Test 微服务环境,Jenkins 部署包错乱踩坑全复盘

一、核心背景在不新增服务器、沿用现有 7G 低配开发机前提下,同时承载:开发环境(2 个 admin 节点)测试环境(1 个 admin 节点)Jenkins 打包编译MySQL / Redis / Zookeeper / Milvus 等全套中间件机器硬件资源…...

5分钟快速上手:LuckyLilliaBot QQ机器人完整部署指南

5分钟快速上手:LuckyLilliaBot QQ机器人完整部署指南 【免费下载链接】LuckyLilliaBot 支持 OneBot 11、Satori 和 Milky 协议 项目地址: https://gitcode.com/gh_mirrors/li/LuckyLilliaBot 你是否正在寻找一款简单易用、功能强大的QQ机器人框架&#xff1f…...

【信息科学与工程学】【制造工程】【通信工程】第一百零一篇 2nm 200Tbps+核心交换机全尺度参数宇宙构建框架02

编号 尺度/层级 参数类型 参数名称 数学表达式/物理模型/关联描述 典型值/范围 (目标) 单位 核心关联参数 依赖关系 互斥/协同/传递关系 设计/制造/应用要求 测试/验证方法 关联学科/领域 Switch-692​ 整机/电磁兼容 独立参数 整机对浪涌(冲击)抗扰度的线-线…...

通过 Python 快速将现有应用接入 Taotoken 的多模型服务

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过 Python 快速将现有应用接入 Taotoken 的多模型服务 如果你正在使用 OpenAI 官方的 Python SDK 开发应用,并且希望…...

代码评审可视化:基于图计算与数据驱动提升团队协作效率

1. 项目概述:从代码评审的“混沌”到“清晰”如果你是一名开发者,或者是一名技术团队的负责人,那么“代码评审”这个词对你来说一定不陌生。它几乎是现代软件工程中保障代码质量、促进知识共享、统一编码风格的核心环节。然而,一个…...

从赛场到职场:一份高职物联网技能大赛任务书的实战拆解与能力映射

1. 竞赛任务书背后的物联网技术全景 高职物联网技能大赛的任务书就像一份浓缩版的行业项目说明书,里面藏着物联网技术的完整技术栈。我第一次看到这份任务书时,发现它完美地覆盖了物联网的三大层级:感知层、传输层和应用层。 感知层设备选型与…...

Formal验证签核深度解析:从COI、Proof Core到Mutation,你的覆盖率真的够了吗?

Formal验证签核深度解析:从COI、Proof Core到Mutation,你的覆盖率真的够了吗? 在芯片设计领域,Formal验证已经成为确保设计正确性的重要手段。不同于传统的仿真验证,Formal验证通过数学方法穷举所有可能的输入组合&…...