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

《C语言中的“魔法盒子”:自定义函数的奇妙之旅》

在这里插入图片描述

🚀个人主页:BabyZZの秘密日记
📖收入专栏:C语言


🌍文章目入

    • 一、引言
    • 二、自定义函数的创建
      • (一)基本结构
      • (二)一个简单的例子
    • 三、自定义函数的使用
      • (一)调用函数
      • (二)函数的多次调用
    • 四、函数的参数传递
      • (一)值传递
      • (二)地址传递
    • 五、函数的返回值
      • (一)有返回值
      • (二)无返回值
    • 六、函数的嵌套调用
    • 七、总结

一、引言

在编程的世界里,代码就像是一场奇妙的冒险。而C语言中的自定义函数,就像是一个个神奇的“魔法盒子”。你往里面放入一些“材料”(参数),它就能按照你设定的“魔法咒语”(函数体)来完成任务,然后给你一个“惊喜”(返回值)。接下来,就让我们一起开启这段“魔法盒子”的探索之旅吧!

二、自定义函数的创建

(一)基本结构

自定义函数的结构就像是一个完整的魔法配方,它包括以下几个关键部分:

返回值类型 函数名(参数列表)
{// 函数体// 这里是魔法咒语的施展过程return 返回值; // 把魔法的结果展示出来
}
  • 返回值类型:这是魔法盒子最终要给出的“惊喜”的类型。比如,如果你的魔法是计算两个数的和,那么返回值类型可能是int
  • 函数名:这是魔法盒子的名字,你可以根据它的功能来命名,比如add表示加法。
  • 参数列表:这是你放入魔法盒子的“材料”。如果不需要材料,也可以没有参数。参数列表的形式是“类型 名称”,多个参数用逗号分隔。
  • 函数体:这是魔法咒语的核心部分,是函数真正执行的操作。它被花括号{}包围。

(二)一个简单的例子

让我们来创建一个简单的魔法盒子——计算两个整数的和。

int add(int a, int b)
{int sum = a + b; // 把两个数相加,得到魔法的结果return sum; // 把结果返回
}

在这个例子中:

  • 返回值类型是int,因为我们要返回一个整数。
  • 函数名是add,表示这是一个加法的魔法盒子。
  • 参数列表是int a, int b,表示我们需要两个整数作为“材料”。
  • 函数体中,我们把两个数相加,然后返回结果。

三、自定义函数的使用

(一)调用函数

创建了魔法盒子之后,我们就可以在程序中随时使用它了。调用函数就像是打开魔法盒子,把“材料”放进去,然后等待“惊喜”。

调用函数的格式是:

返回值 = 函数名(参数列表);

还是以刚才的add函数为例,我们可以在主函数中这样调用它:

#include <stdio.h>int add(int a, int b);int main()
{int num1 = 5, num2 = 3;int result = add(num1, num2); // 调用函数,把num1和num2作为参数printf("The sum is: %d\n", result); // 输出结果return 0;
}

在这个例子中:

  • 我们定义了两个整数num1num2,作为要计算的两个数。
  • 然后我们调用add函数,把num1num2作为参数传递进去。
  • 函数执行后,会返回两个数的和,我们把返回值存储在result变量中。
  • 最后,我们用printf函数输出结果。

(二)函数的多次调用

魔法盒子的一个神奇之处在于,你可以多次使用它,而不需要每次都重新编写代码。比如,我们可以用同一个add函数来计算不同的数的和。

#include <stdio.h>int add(int a, int b);int main()
{int num1 = 5, num2 = 3;int result1 = add(num1, num2); // 计算5+3printf("The sum of 5 and 3 is: %d\n", result1);int num3 = 7, num4 = 9;int result2 = add(num3, num4); // 计算7+9printf("The sum of 7 and 9 is: %d\n", result2);return 0;
}

在这个例子中,我们用同一个add函数分别计算了5+37+9,而不需要重复编写加法的代码。这就是函数的复用性,让我们的代码更加简洁和高效。

四、函数的参数传递

(一)值传递

值传递就像是把“材料”的副本放入魔法盒子。在函数内部对参数的操作,不会影响到原来的“材料”。

#include <stdio.h>void change(int x)
{x = x + 10; // 在函数内部修改参数x
}int main()
{int num = 5;printf("Before calling the function: num = %d\n", num);change(num); // 调用函数,传递num的值printf("After calling the function: num = %d\n", num);return 0;
}

在这个例子中:

  • 我们定义了一个change函数,它接收一个整数参数x,并在函数内部把x加10。
  • 在主函数中,我们定义了一个整数num,并调用了change函数,传递num的值。
  • 由于是值传递,函数内部对x的修改不会影响到num。所以,调用函数后,num的值仍然是5。

(二)地址传递

地址传递就像是把“材料”的位置告诉魔法盒子,魔法盒子可以直接去操作原来的“材料”。

#include <stdio.h>void change(int *x)
{*x = *x + 10; // 通过指针修改参数x指向的值
}int main()
{int num = 5;printf("Before calling the function: num = %d\n", num);change(&num); // 调用函数,传递num的地址printf("After calling the function: num = %d\n", num);return 0;
}

在这个例子中:

  • change函数的参数是一个指针int *x,表示它接收一个整数的地址。
  • 在主函数中,我们用&numnum的地址传递给change函数。
  • 函数内部通过*x来访问和修改num的值。所以,调用函数后,num的值变成了15。

五、函数的返回值

(一)有返回值

有些魔法盒子会给我们一个“惊喜”,比如前面的add函数,它会返回两个数的和。

int max(int a, int b)
{if (a > b)return a; // 如果a大于b,返回aelsereturn b; // 否则返回b
}

在这个例子中,max函数会比较两个整数ab,并返回较大的那个数。我们可以这样调用它:

int num1 = 5, num2 = 3;
int result = max(num1, num2); // 调用函数,得到较大的数
printf("The larger number is: %d\n", result);

(二)无返回值

有些魔法盒子可能只是完成一个任务,而不需要给我们一个“惊喜”。这种情况下,函数的返回值类型是void

void printHello()
{printf("Hello, world!\n"); // 打印一句话
}

在这个例子中,printHello函数没有返回值,它的任务就是打印一句话。我们可以这样调用它:

printHello(); // 调用函数,打印Hello, world!

六、函数的嵌套调用

魔法盒子还可以嵌套使用,就像一个魔法盒子里面又有一个魔法盒子。这在解决复杂问题时非常有用。

#include <stdio.h>int add(int a, int b)
{return a + b;
}int multiply(int a, int b)
{return a * b;
}int main()
{int num1 = 5, num2 = 3, num3 = 2;int result = multiply(add(num1, num2), num3); // 先调用add,再调用multiplyprintf("The result is: %d\n", result);return 0;
}

在这个例子中:

  • 我们先调用add函数,计算num1num2的和。
  • 然后把add函数的结果作为参数传递给multiply函数,计算乘积。
  • 最终,我们得到了结果16

七、总结

通过这次奇妙的“魔法盒子”之旅,我们学会了如何创建和使用自定义函数。自定义函数让我们的代码更加模块化、简洁和高效。我们可以把复杂的任务分解成一个个小的魔法盒子,
然后通过调用这些魔法盒子来完成任务。在编程的世界里,自定义函数就像是我们的得力助手,帮助我们轻松地完成各种任务。

相关文章:

《C语言中的“魔法盒子”:自定义函数的奇妙之旅》

&#x1f680;个人主页&#xff1a;BabyZZの秘密日记 &#x1f4d6;收入专栏&#xff1a;C语言 &#x1f30d;文章目入 一、引言二、自定义函数的创建&#xff08;一&#xff09;基本结构&#xff08;二&#xff09;一个简单的例子 三、自定义函数的使用&#xff08;一&#xf…...

【Spring】IoC 和 DI的关系、简单使用,从“硬编码“到“优雅解耦“:IoC与DI的Spring蜕变之旅

1.IoC 和 DI的关系 IoC&#xff08;Inversion of Control&#xff0c;控制反转&#xff09;和DI&#xff08;Dependency Injection&#xff0c;依赖注入&#xff09;是Spring框架中紧密相关但又有所区别的两个概念。理解它们的联系&#xff0c;可以帮助我们更深刻地掌握Spring…...

43、RESTful API 保姆教程

RESTful API 目录 RESTful API简介RESTful设计原则RESTful设计规范RESTful统一返回体JAX-RSJAX-RS与SpringBoot集成构建Restful服务实践总结一、RESTful API 简介 REST(Representational State Transfer)是一种基于HTTP的web服务架构风格,RESTful API则是遵循REST原则的网…...

ASP.NET Core 性能优化:客户端响应缓存

文章目录 前言一、什么是缓存二、客户端缓存核心机制&#xff1a;HTTP缓存头1&#xff09;使用[ResponseCache]属性&#xff08;推荐&#xff09;2&#xff09;预定义缓存配置&#xff08;CacheProfile&#xff09;3&#xff09;手动设置HTTP头4&#xff09;缓存验证机制&#…...

算法导论(递归回溯)——递归

算法思路&#xff08;21&#xff09; 递归函数的含义&#xff1a; 创建一个递归函数&#xff0c;该函数接受两个链表的头结点作为输入&#xff0c;返回合并后的链表的头结点。 选择较小的节点&#xff1a; 在函数体内&#xff0c;首先比较两个链表的头结点的值&#xff0c;选择…...

从接口400ms到20ms,记录一次JVM、MySQL、Redis的混合双打

​​1. 场景&#xff1a;促销活动的崩溃​​ 接到报警短信&#xff0c;核心接口响应时间突破​​5秒​​&#xff0c;DB CPU飙到100%。 用Arthas抓取线上火焰图后发现&#xff1a; ---[ 4763ms ] com.example.service.OrderService.createOrder() |---[ 98% ] com.example.m…...

Excel通过VBA脚本去除重复数据行并保存

一、方法1:使用字典动态去重并保存 适用场景&#xff1a;需要灵活控制去重逻辑&#xff08;如保留最后一次出现的重复项&#xff09;时 Sub 动态去重保存到新表()Dim srcSheet As Worksheet, destSheet As WorksheetDim dict As Object, lastRow As Long, i As LongDim key A…...

Mysql表的操作(2)

1.去重 select distinct 列名 from 表名 2.查询时排序 select 列名 from 表名 order by 列名 asc/desc; 不影响数据库里面的数据 错误样例 &#xff1a; 但结果却有点出乎意料了~为什么会失败呢&#xff1f; 其实这是因为书写的形式不对&#xff0c;如果带了引号&#xff0c;…...

#Linux内存管理# 在ARM32系统中,页表是如何映射的?在ARM64系统中,页表又是如何映射的?

一、ARM32系统页表映射 1. 层级结构与地址划分 默认实现&#xff1a;采用两层映射&#xff08;PGD→PTE&#xff09;&#xff0c;合并Linux标准三级模型中的PMD层。 虚拟地址解析&#xff08;以4KB页为例&#xff09;&#xff1a; Bits[31:20]&#xff1a;一级页表&#xff08;…...

prometheus整合jmx_exporter 使用jmx_exporter监控Kafka

docker-compose部署kafka集群&#xff1b;单节点单zk-CSDN博客 springboot整合kafka&#xff1b;docker部署kafka-CSDN博客 kafka使用SSL加密和认证--todo_ssl.truststore.location-CSDN博客 version: 3.8services:zookeeper1:image: zookeeper:3.9.1container_name: zook…...

深度学习实战:从零构建图像分类API(Flask/FastAPI版)

引言&#xff1a;AI时代的图像分类需求 在智能时代&#xff0c;图像分类技术已渗透到医疗影像分析、自动驾驶、工业质检等各个领域。作为开发者&#xff0c;掌握如何将深度学习模型封装为API服务&#xff0c;是实现技术落地的关键一步。本文将手把手教你使用Python生态中的Fla…...

Kafka实现延迟消息

Kafka 实现延迟消息 Kafka 本身不支持原生的延迟消息&#xff08;不像 RocketMQ 内置了延迟队列&#xff09;&#xff0c;但可以通过多种方式来实现延迟消息。常见的方案如下&#xff1a; 1. 使用不同的 Topic 分区&#xff08;最常见&#xff09; 思路&#xff1a; 创建多…...

大数据(7.2)Kafka万亿级数据洪流下的架构优化实战:从参数调优到集群治理

目录 一、海量数据场景下的性能之殇1.1 互联网企业的数据增长曲线1.2 典型性能瓶颈分析 二、生产者端极致优化2.1 批量发送黄金法则2.1.1 分区选择算法对比 2.2 序列化性能突破 三、消费者端并发艺术3.1 多线程消费模式演进3.1.1 消费组Rebalance优化 3.2 位移管理高阶技巧 四、…...

要查看 FAISS 使用的 OpenMP 版本,需根据安装方式和系统环境采用不同方法。以下是具体步骤和原理分析:

要查看 FAISS 使用的 OpenMP 版本&#xff0c;需根据安装方式和系统环境采用不同方法。以下是具体步骤和原理分析&#xff1a; 方法 1&#xff1a;通过库文件名称直接查看&#xff08;推荐&#xff09; FAISS 的 OpenMP 版本通常直接体现在其依赖的动态链接库&#xff08;DLL/…...

AI 大模型的标准化工具箱MCP (Model Context Protocol)

MCP简介 MCP &#xff08;Model Context Protocol&#xff0c;模型上下文协议&#xff09;定义了应用程序和 AI 模型之间交换上下文信息的方式。这使得开发者能够以一致的方式将各种数据源、工具和功能连接到 AI 模型&#xff08;一个中间协议层&#xff09;&#xff0c;就像 …...

哈希表的封装

目录 引入 哈希表封装 修改哈希表参数 修改哈希表成员 修改%时使用的变量 修改读取时获得的变量 迭代器的实现 迭代器的定义 迭代器 迭代器*解引用 迭代器->成员访问 迭代器重载和! 封装迭代器 HashTable迭代器封装 非const版本 const版本 unordered_set迭…...

2025年认证杯数模竞赛赛题浅析-快速选题

赛题浅析 认证杯作为国内最早的数学建模论坛、唯一一个全部公开参赛论文的竞赛、国内最大的数学建模竞赛之一、唯一一个对非学生群里开放的数学建模竞赛、国内唯二的支持高中生参赛的大学生数模竞赛。在数模界一直被视为国赛之前较好的练手赛&#xff0c;本文将初步简略得介绍…...

【网络安全】Linux 常见命令

未经许可,不得转载。 文章目录 正文系统信息查看用户与权限管理进程管理网络配置与检测文件操作日志查看与分析权限审计与安全检测正文 在网络安全工作中,熟练掌握 Linux 系统中的常用命令,对于日常运维、日志分析、安全排查等工作至关重要。 以下为常用命令汇总,供参考。…...

电脑卡顿严重怎么办 电脑卡顿的处理指南

电脑突然卡顿比较严重&#xff0c;这是很多用户都曾经遇到过的问题&#xff0c;鼠标一直转圈圈&#xff0c;无法进行任何操作。电脑卡顿&#xff0c;电脑卡顿不仅会降低工作效率&#xff0c;还可能导致数据丢失&#xff0c;数据无法保存。很多用户解决电脑卡顿的方法就是直接一…...

山东大学软件学院创新项目实训开发日志(9)之测试前后端连接

在正式开始前后端功能开发前&#xff0c;在队友的帮助下&#xff0c;成功完成了前后端测试连接&#xff1a; 首先在后端编写一个测试相应程序&#xff1a; 然后在前端创建vue 并且在index.js中添加一下元素&#xff1a; 然后进行测试&#xff0c;测试成功&#xff1a; 后续可…...

H.264 NVMPI解码性能优化策略

H.264 NVMPI解码性能优化策略‌ ‌1. 硬件与驱动配置‌ ‌JetPack版本匹配‌&#xff1a;确保NVIDIA Jetson设备的JetPack SDK版本与CUDA驱动兼容&#xff0c;避免因驱动不匹配导致硬件解码性能下降‌8。‌显存分配优化‌&#xff1a;调整FFmpeg的-hwaccel_device参数指定GPU…...

汽车软件开发常用的需求管理工具汇总

目录 往期推荐 DOORS&#xff08;IBM &#xff09; 行业应用企业&#xff1a; 应用背景&#xff1a; 主要特点&#xff1a; Polarion ALM&#xff08;Siemens&#xff09; 行业应用企业&#xff1a; 应用背景&#xff1a; 主要特点&#xff1a; Codebeamer ALM&#x…...

如何从零构建一个自己的 CentOS 基础镜像

如何从零构建一个自己的 CentOS 基础镜像 从零构建一个基于 CentOS 的基础镜像是一个很好的实践&#xff0c;可以帮助你理解 Docker 镜像的底层原理。以下是以 CentOS 为例&#xff0c;从零开始&#xff08;不依赖现有镜像&#xff09;构建基础镜像的详细步骤。我们将使用 yum…...

mongodb和clickhouse比较

好问题——MongoDB 也能处理这种高写入 定期删除的时间序列场景&#xff0c;尤其从 MongoDB 5.0 开始支持了专门的 Time Series Collections&#xff08;时间序列集合&#xff09;&#xff0c;对你的需求其实挺对口的。 不过它有些优点和局限&#xff0c;需要具体分析下你场景…...

C#容器源码分析 --- List

List是一个非常常用的泛型集合类&#xff0c;它位于 System.Collections.Generic 命名空间下&#xff0c;本质上是一个动态数组&#xff0c;它提供了一系列方便的方法来管理和操作元素&#xff0c;例如添加、删除、查找等。与传统的数组相比&#xff0c;List可以根据需要动态调…...

以太坊区块大小的决定因素:深入解析区块 Gas 限制及其影响

以太坊&#xff08;Ethereum&#xff09;作为全球领先的区块链平台&#xff0c;其区块大小并非固定的物理尺寸&#xff0c;而是由区块 Gas 限制&#xff08;Block Gas Limit&#xff09;所决定。​理解区块 Gas 限制及其影响因素&#xff0c;对于深入掌握以太坊网络的运行机制至…...

利用DeepFlow解决APISIX故障诊断中的方向偏差问题

概要&#xff1a;随着APISIX作为IT应用系统入口的普及&#xff0c;其故障定位能力的不足导致了在业务故障诊断中&#xff0c;APISIX常常成为首要的“嫌疑对象”。这不仅导致了“兴师动众”式的资源投入&#xff0c;还可能使诊断方向“背道而驰”&#xff0c;从而导致业务故障“…...

智慧养老实训基地建设方案:如何以科技赋能养老实操培训

在人口老龄化加剧的当下&#xff0c;智慧养老产业蓬勃发展&#xff0c;对专业技能型人才的需求愈发迫切。智慧养老实训基地建设意义非凡&#xff0c;它为培育具备实操能力与创新思维的养老人才搭建关键平台&#xff0c;有助于填补行业人才缺口&#xff0c;推动养老服务从传统模…...

基于AI的Web应用防火墙(AppWall)实战:漏洞拦截与威胁情报集成

摘要&#xff1a;针对Web应用面临的OWASP、CVE等漏洞攻击&#xff0c;本文结合群联AI云防护系统的AppWall模块&#xff0c;详解AI规则双引擎的防御原理&#xff0c;并提供漏洞拦截配置与威胁情报集成代码示例。 一、Web应用安全挑战与AppWall优势 传统WAF依赖规则库更新滞后&a…...

什么是采购管理?如何做好采购管理的持续优化?

你是不是也遇到过这种情况&#xff1a; 公司采购部刚换了新供应商&#xff0c;结果原材料质量忽高忽低&#xff0c;生产线上三天两头出状况&#xff1b;行政采购的办公用品&#xff0c;月初买回来月底就堆在仓库吃灰&#xff1b;财务部天天追着问采购成本怎么又超支了... 这些…...

Unity 设置弹窗Tips位置

根据鼠标位于屏幕的区域&#xff0c;设置弹窗锚点以及位置 public static void TipsPos(Transform tf) {//获取ui相机var uiCamera GetUICamera();var popup tf.GetComponent<RectTransform>();//获取鼠标位置Vector2 mousePos Input.mousePosition;float screenWidt…...

区块链知识点5-Solidity编程基础

1. 全局变量名 具体描述 msg.sender 返回当前调用函数的调用者的地址 msg.value 当前消息所附带的以太币&#xff0c;单位为wei 2.变量的用法 默认存储位置修饰符 函数的返回值 memory 函数内部的局…...

OLAP与OLTP架构设计原理对比

OLAP与OLTP架构设计原理对比 一、核心区别 维度OLTPOLAP设计目标支持高并发、低延迟的事务操作&#xff08;增删改查&#xff09;支持复杂分析查询&#xff08;聚合、多维度统计&#xff09;数据模型规范化模型&#xff08;3NF&#xff09;&#xff0c;减少冗余维度模型&…...

ubuntu20.04在mid360部署direct_lidar_odometry(DLO)

editor&#xff1a;1034Robotics-yy time&#xff1a;2025.4.10 1.下载DLO&#xff0c;mid360需要的一些...: 1.1 在工作空间/src下 下载DLO&#xff1a; git clone https://github.com/vectr-ucla/direct_lidar_odometry 1.2 在工作空间/src下 下载livox_ros_driver2&…...

检索增强生成(RAG)架构深度解析:突破大模型边界的工程实践

一、RAG技术架构设计哲学 1.1 范式演进&#xff1a;从静态模型到动态知识系统 graph LR A[传统LLM架构] -->|问题| B[依赖预训练参数] B --> C[知识固化风险] C --> D[领域适配困难]A -->|解决方案| E[RAG增强架构] E --> F[实时知识检索] F --> G[动态上下…...

线代第四课:行列式的性质

行列式性质 转置行列式 把行列式的第一行转置成第一列&#xff0c;使用表示 如果在转置一下&#xff1a; 性质一&#xff1a; 行列地位相同&#xff0c;对行性质&#xff0c;对列性质 性质二&#xff1a; 交换D的两行&#xff08;列&#xff09;&#xff0c;D值变符号 性…...

【语音识别】vLLM 部署 Whisper 语音识别模型指南

目录 1. 模型下载 2. 环境安装 3. 部署脚本 4. 服务测试 语音识别技术在现代人工智能应用中扮演着重要角色&#xff0c;OpenAI开源的Whisper模型以其出色的识别准确率和多语言支持能力成为当前最先进的语音识别解决方案之一。本文将详细介绍如何使用vLLM&#xff08;一个高…...

Python | kelvin波的水平空间结构

写在前面 简单记录一下之前想画的一个图&#xff1a; 思路 整体比较简单&#xff0c;两个子图&#xff0c;本质上就是一个带有投影&#xff0c;一个不带投影&#xff0c;通常用在EOF的空间模态和时间序列的绘制中&#xff0c;可以看看之前的几个详细的画法。 Python | El Ni…...

什么叫行列式

《行列式&#xff1a;数学中的重要概念及其应用》 行列式是数学中的一个重要概念&#xff0c;主要用于描述线性方程组、向量空间等方面的性质。以下是关于它的详细介绍&#xff1a; 定义 行列式是由排成正方形的一组数&#xff08;称为元素&#xff09;按照特定的规则计算得…...

构建高可用大数据平台:Hadoop与Spark分布式集群搭建指南

想象一下&#xff0c;你手握海量数据&#xff0c;却因为测试环境不稳定&#xff0c;频频遭遇宕机和数据丢失的噩梦。Hadoop和Spark作为大数据处理的“黄金搭档”&#xff0c;如何在分布式高可用&#xff08;HA&#xff09;环境下稳如磐石地运行&#xff1f;答案就在于一个精心构…...

[leetcode]211. 添加与搜索单词(Trie+DFS)

题目链接 题意 实现词典类 WordDictionary &#xff1a; WordDictionary() 初始化词典对象void addWord(word) 将 word 添加到数据结构中&#xff0c;之后可以对它进行匹配bool search(word) 如果数据结构中存在字符串与 word 匹配&#xff0c;则返回 true &#xff1b;否则…...

AI | 字节跳动 AI 中文IDE编辑器 Trae 初体验

Trae 简介与安装 &#x1f526; 什么是 Trae Trae 是大厂字节跳动出品的国内首个 AI IDE&#xff0c;深度理解中文开发场景。AI 高度集成于 IDE 环境之中&#xff0c;为你带来比 AI 插件更加流畅、准确、优质的开发体验。说是能够不用写代码&#xff0c;全靠一张嘴跟 AI 聊天…...

【开发经验】结合实际问题解决详述HTTPS通信过程

最近的开发调试过程中涉及到了HTTPS发送与接收&#xff0c;遇到实际问题才发现对这部分尚属于一知半解。结合实际问题的解决过程来详细整理以下HTTPS通信过程。 需要调试的功能为BMC作为客户端向搭建好的Web服务器发送HTTPS请求&#xff0c;Web服务器负责接收处理发送过来的HT…...

灵霄破茧:仙途启幕 - 灵霄门新篇-(4)

重建之路&#xff0c;风云再起 灵霄门内一片萧瑟&#xff0c;残垣断壁间弥漫着悲伤与凝重。弟子们忙碌地清理着战场&#xff0c;救治伤员&#xff0c;每个人的脸上都带着劫后余生的疲惫。陈霄日夜守在玄风真人的榻前&#xff0c;眼中满是自责与担忧。玄风真人的伤势极重&#…...

微信小程序事件绑定基本语法

微信小程序使用 bind 或 catch 前缀绑定事件&#xff0c;语法如下&#xff1a; <组件 bind事件名"处理函数" catch事件名"处理函数"></组件> bind&#xff1a;事件绑定&#xff0c;允许事件冒泡&#xff08;向父组件传递&#xff09;。 catc…...

vscode 连不上 Ubuntu 18 server 的解决方案

下载 vscode 历史版本 18.5&#xff08;windows请装在 系统盘 C 盘&#xff09; 打开 vdcode&#xff0c;将 自动更新 设置为 None &#xff08;很关键&#xff0c;否则容易前功尽弃&#xff09; 重命名&#xff08;删除&#xff09; 服务器上的 .vscode-server 文件夹 重新…...

OSPF接口的网络类型和不规则区域

网络类型(数据链路层所使用的协议所构建的二层网络类型) 1、MA --- 多点接入网络 BMA --- 支持广播的多点接入网络 NBMA --- 不支持广播的多点接入网络 2、P2P --- 点到点网络 以太网 --- 以太网最主要的特点是需要基于MAC地址进行物理寻址&#xff0c;主要是因为以太网接口所连…...

基于Flask的勒索病毒应急响应平台架构设计与实践

基于Flask的勒索病毒应急响应平台架构设计与实践 序言&#xff1a;安全工程师的防御视角 作为从业十年的网络安全工程师&#xff0c;我深刻理解勒索病毒防御的黄金时间法则——应急响应速度每提升1分钟&#xff0c;数据恢复成功率将提高17%。本文介绍的应急响应平台&#xff…...

0410 | 软考高项笔记:项目管理概述

以下是不同组织结构中项目经理的角色、工作特点以及快速记忆的方法&#xff1a; 不同组织结构中项目经理的角色和工作特点 组织结构项目经理的角色工作特点职能型组织项目协调者、辅助管理者权力有限&#xff0c;主要负责协调部门间的工作&#xff0c;项目成员向部门经理汇报…...

基于 Qt 的图片处理工具开发(一):拖拽加载与基础图像处理功能实现

一、引言 在桌面应用开发中&#xff0c;图片处理工具的核心挑战在于用户交互的流畅性和异常处理的健壮性。本文以 Qt为框架&#xff0c;深度解析如何实现一个支持拖拽加载、亮度调节、角度旋转的图片处理工具。通过严谨的文件格式校验、分层的架构设计和用户友好的交互逻辑&am…...