C++定义函数有多个形参,定义结构体作为形参

embedded/2024/11/23 16:42:29/

如题,在定义函数时有时会遇到该函数需要传递多个形参(>3)的情况,如果一个个列出来,不管是函数声明还是函数调用都会导致这一句很长很长,这种情况可以定义一个结构体包含这些参数,然后把结构体变量作为函数的形参,代码就简洁很多,示例:

struct MyFunctionParams {int intParam;double doubleParam;std::string stringParam;// 可以添加更多参数和相应的类型
};//函数实现
void myFunction(const MyFunctionParams& params) {// 使用 params.intParam, params.doubleParam, params.stringParam
}// 调用函数
MyFunctionParams params = {42, 3.14, "Hello"};
myFunction(params);
//访问结构体变量成员
params.intParam = 5;
params.doubleParam=6.23;
params.stringParam="siww";


http://www.ppmy.cn/embedded/139887.html

相关文章

「漏洞复现」ArcGIS 地理信息系统 任意文件读取漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删…

如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目

如约介绍源码构建 Infinite-ISP 项目,其实大家等的是源码,所以中间过程简洁略过,可以直接翻到文末获取链接。 开源ISP(Infinite-ISP)介绍 构建工程 第一步,从文末或者下面链接获取源码 https://github.com/…

常用并发设计模式

避免共享的设计模式 不变性(Immutability)模式,写时复制(Copy-on-Write)模式,线程本地存储(Thread-Specific Storage)模式本质上都是为了避免共享。 1、使用时需要注意不变性模式…

使用llama.cpp进行量化和部署

git clone https://github.com/ggerganov/llama.cpp cd llama.cpp 🖥️ CPU 版本 cmake -B build_cpu cmake --build build_cpu --config Release 🖥️ CUDA 版本 cmake -B build_cuda -DLLAMA_CUDAON cmake --build build_cuda --config Release -j …

Spark RDD 的宽依赖和窄依赖

通俗地理解 Spark RDD 的 宽依赖 和 窄依赖,可以通过以下比喻和解释: 1. 日常生活比喻 假设你在管理多个团队完成工作任务: 窄依赖:每个团队只需要关注自己的分工,完成自己的任务。例如,一个人将纸张折好&…

人工智能的核心思想-神经网络

神经网络原理 引言 在理解ChatGPT之前,我们需要从神经网络开始,了解最简单的“鹦鹉学舌”是如何实现的。神经网络是人工智能领域的基础,它模仿了人脑神经元的结构和功能,通过学习和训练来解决复杂的任务。本文将详细介绍神经网络…

Linux 中的 zoxide 命令详解与示例

文章目录 Linux 中的 zoxide 命令详解与示例zoxide 简介安装 zoxide使用包管理器Ubuntu/DebianArch LinuxFedoramacOS(Homebrew)Windows(Scoop) 使用脚本安装(linux、Centos)安装流程 集成到 ShellBashZshF…

MongoDB的常用命令(数据库操作、集合操作、文档操作)

文章目录 1. 数据库操作1.1 数据库的命名规范1.2 选择数据库和创建数据库1.3 删除数据库1.4 查看所有数据库1.5 查看当前正在使用的数据库 2. 集合操作2.1 集合的命名规范2.2 集合的显式创建2.3 集合的隐式创建2.4 删除集合2.5 查看当前数据库中的所有集合 3. 文档操作3.1 文档…