C/C++函数指针、C#委托是什么?
函数指针
#include<stdio.h>//声明函数指针
typedef int(*Calc)(int a, int b);
int Add(int a, int b)
{return a + b;
}
int Sub(int a, int b) {return a - b;
}int main() {Calc funcPoint1 = &Add;Calc funcPoint2 = ⋐int x = 120;int y = 140;int z = 0;z = Add(x, y);z = funcPoint1(x, y);printf("%d+%d=%d\n", x, y, z);z = Sub(x, y);z = funcPoint2(x, y);printf("%d-%d=%d\n", x, y, z);system("pause");}
一切皆地址
变量(数据):是以某个地址为起点中的一段内存中所存储的值;
函数(算法):是以函数名为地址起点的一段内存中所存储的一组机器语言指令;
C#中委托是什么?
委托(delegate)是函数指针的‘升级版’;
委托的简单使用
- Action委托
- Func委托
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace FunctionPointerExampleCsharp
{class Program{static void Main(string[] args){Calculator ca = new Calculator();Action action = new Action(ca.Report);ca.Report();action.Invoke();action();Func<int, int, int> func = new Func<int, int, int>(ca.Add);Func<int, int, int> func2 = new Func<int, int, int>(ca.Sub);int result=func.Invoke(12, 34);Console.WriteLine(result);result=func2.Invoke(123, 34);Console.WriteLine(result);result =func(12, 34);Console.WriteLine(result);result =func2(123, 34);Console.WriteLine(result);}}class Calculator{public void Report(){Console.WriteLine("Hello,Tom!");}public int Add(int a, int b){return a + b;}public int Sub(int a, int b){return a - b;}}
}相关文章:
C/C++函数指针、C#委托是什么?
函数指针 #include<stdio.h>//声明函数指针 typedef int(*Calc)(int a, int b); int Add(int a, int b) {return a b; } int Sub(int a, int b) {return a - b; }int main() {Calc funcPoint1 &Add;Calc funcPoint2 ⋐int x 120;int y 140;int z 0;z …...
红队攻防渗透技术实战流程:组件安全:JacksonFastJsonXStream
红队攻防渗透实战 1. 组件安全1.1 J2EE-组件Jackson-本地demo&CVE1.1.1 代码执行 (CVE-2020-8840)1.1.2 代码执行(CVE-2020-35728)1.2 J2EE-组件FastJson-本地demo&CVE1.2.1 FastJson <= 1.2.241.2.2 FastJson <= 1.2.471.2.3 FastJson <= 1.2.801.3 J2EE-组…...
Perl 语言学习进阶
一、如何深入 要深入学习Perl语言的库和框架,可以按照以下步骤进行: 了解Perl的核心模块:Perl有许多核心模块,它们提供了许多常用的功能。了解这些模块的功能和用法是深入学习Perl的第一步。一些常用的核心模块包括:S…...
LangGraph实战:从零分阶打造人工智能航空客服助手
❝ 通过本指南,你将学习构建一个专为航空公司设计的客服助手,它将协助用户查询旅行信息并规划行程。在此过程中,你将掌握如何利用LangGraph的中断机制、检查点技术以及更为复杂的状态管理功能,来优化你的助手工具,同时…...
R可视化:R语言基础图形合集
R语言基础图形合集 欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2 基础图形可视化 数据分析的图形可视化是了解数据分布、波动和相关性等属性必…...
mysql导入sql文件失败及解决措施
1.报错找不到表 1.1 原因 表格创建失败,编码问题mysql8相较于mysql5出现了新的编码集 1.2解决办法: 使用vscode打开sql文件ctrlh,批量替换,替换到你所安装mysql支持的编码集。 2.timestmp没有设置默认值 Error occured at:20…...
JS:获取鼠标点击位置
一、获取鼠标在目标元素中的点击位置 getClickPos.ts: export const getClickPos (e: MouseEvent) > {return {x: e.offsetX,y: e.offsetY,}; };二、获取鼠标在页面中的点击位置 getClickPos.ts: export const getPageClickPos (e: MouseEvent) > {return {x: e.pa…...
使用开源的zip.cpp和unzip.cpp实现压缩包的创建与解压(附源码)
目录 1、使用场景 2、压缩包的创建 3、压缩包的解压 4、CloseZipZ和CloseZipU两接口的区别...
npm 异常:peer eslint@“>=1.6.0 <7.0.0“ from eslint-loader@2.2.1
node 用16版本 npm install npm6.14.15 -g将版本降级到6...
Docker|了解容器镜像层(2)
引言 容器非常神奇。它们允许简单的进程表现得像虚拟机。在这种优雅的底层是一组模式和实践,最终使一切运作起来。在设计的根本是层。层是存储和分发容器化文件系统内容的基本方式。这种设计既出人意料地简单,同时又非常强大。在今天的帖子[1]中…...
使用Python爬取temu商品与评论信息
【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python与爬虫领域研究与开发工作! 【&…...
mybatis学习--自定义映射resultMap
1.1、resultMap处理字段和属性的映射关系 如果字段名和实体类中的属性名不一致的情况下,可以通过resultMap设置自定义映射。 常规写法 /***根据id查询员工信息* param empId* return*/ Emp getEmpByEmpId(Param("empId") Integer empId);<select id…...
Elasticsearch之写入原理以及调优
1、ES 的写入过程 1.1 ES支持四种对文档的数据写操作 create:如果在PUT数据的时候当前数据已经存在,则数据会被覆盖,如果在PUT的时候加上操作类型create,此时如果数据已存在则会返回失败,因为已经强制指定了操作类型…...
python中装饰器的用法
最近发现装饰器是一个非常有意思的东西,很高级! 允许你在不修改函数或类的源代码的情况下,为它们添加额外的功能或修改它们的行为。装饰器本质上是一个接受函数作为参数的可调用对象(通常是函数或类),并返…...
php实现一个简单的MySQL分页
一、案例演示: 二、php 代码 <?php $servername "localhost"; // MySQL服务器名称或IP地址 $username "root"; // MySQL用户名 $password "123456"; // MySQL密码 $dbname "test"; // 要连接…...
算法训练营day23补签
题目1:530. 二叉搜索树的最小绝对差 - 力扣(LeetCode) class Solution { public:int reslut INT_MAX;TreeNode* pre NULL;void trackingback(TreeNode* node) {if(node NULL) return;trackingback(node->left);if(pre ! NULL) {reslut…...
国密SM2JS加密后端解密
1.前端加密 前端加密开源库 sm-crypto 1.1 传统web,下载 sm-crypto 进行打包为 dist/sm2.js 相关打包命令 npm install --save sm-crypto npm install npm run prepublish在web页面引用打包后的文件 <script type"text/javascript" src"<%path %>…...
Cheat Engine.exe修改植物大战僵尸阳光与冷却
Cheat Engine.exe修改植物大战僵尸阳光与冷却 打开Cheat Engine.exe和植物大战僵尸,点CE中文件下面红框位置,选择植物大战僵尸,点击打开 修改冷却: 等冷却完毕,首次扫描0安放植物,再次扫描变动值等冷却完…...
python内置模块之queue(队列)用法
queue是python3的内置模块,创建堆栈队列,用来处理多线程通信,队列对象构造方法如下: queue.Queue(maxsize0) 是先进先出(First In First Out: FIFO)队列。 入参 maxsize 是一个整数,用于设置…...
Spring Security——结合JWT实现令牌的验证与授权
目录 JWT(JSON Web Token) 项目总结 新建一个SpringBoot项目 pom.xml PayloadDto JwtUtil工具类 MyAuthenticationSuccessHandler(验证成功处理器) JwtAuthenticationFilter(自定义token过滤器) W…...
利用 JiuwenClaw AgentTeam 打造自动化研发团队
利用 JiuwenClaw AgentTeam 打造自动化研发团队 本文介绍如何通过 JiuwenClaw AgentTeam 构建自动化研发团队,实现字幕软件开发、AtomGit Issue/PR 智能处理与飞书文档同步。 目录 JiuwenClaw 平台概述 系统架构预置智能体类型 什么是 AgentTeams飞书群中添加机器人…...
AI系统合规性故障模式解析:从公平性、隐私到可解释性的工程实践
1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“AI-Compliance-Failure-Patterns”。光看名字,你大概能猜到它和AI的合规性有关,但具体是做什么的,可能还有点模糊。简单来说,这个项目就像一本针对AI系…...
Fulling框架:构建完整AI智能体的工程化实践指南
1. 项目概述:从“FullAgent”到“Fulling”的智能体进化之路最近在开源社区里,一个名为“Fulling”的项目引起了我的注意。它隶属于“FullAgent”这个组织,名字本身就很有意思。“Fulling”这个词,在英语里有“使…丰满、充实”的…...
如何快速清理Windows右键菜单:ContextMenuManager的完整使用指南
如何快速清理Windows右键菜单:ContextMenuManager的完整使用指南 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 还在为Windows右键菜单的混乱不堪而…...
RootlessJamesDSP:无Root环境下的Android全局音频处理方案解析
1. 项目概述:在无根环境中驯服音频的“魔法师”如果你是一个对手机音质有追求的安卓用户,或者是一个喜欢折腾音频处理插件的玩家,那么你很可能听说过或者用过 JamesDSP。它是一款功能强大的音频处理引擎,能够通过复杂的算法&#…...
重磅!移远通信旗下物联网智能品牌 艾络迅™ 正式发布
物联网技术正深刻重塑产业格局,智能化转型已成为企业核心竞争力的关键。然而,企业在推进物联网项目时普遍面临技术门槛高、开发周期长、系统对接难、全球连接复杂等核心挑战。为破解行业智能化转型难题,帮助更多企业提升物联网开发效率&#…...
从泰鼎高管离职事件看半导体公司治理与技术战略平衡
1. 事件背景与核心脉络梳理2011年初,半导体行业发生了一起在当时颇具话题性的高层人事地震。主角是当时在数字电视和多媒体处理器领域颇有建树的泰鼎微系统(Trident Microsystems, Inc.)。事件的核心是,公司的首席执行官ÿ…...
从零构建生成式AI项目:RAG、智能体与微调实战指南
1. 从零到一:构建端到端生成式AI项目的全景图如果你是一名开发者或技术爱好者,最近打开GitHub,大概率会被各种以“RAG”、“Agent”、“Fine-tuning”为标题的项目刷屏。生成式AI,尤其是大语言模型,已经从实验室的尖端…...
从高通市值超越英特尔看半导体IP价值与Fabless模式
1. 从一则旧闻谈起:当高通市值超越英特尔2012年11月9日,对于全球半导体行业而言,是一个值得被记住的日子。那天,一则消息在业界引发了不小的震动:高通(Qualcomm)的市值首次超越了英特尔…...
Gemini3.1Pro发布:多模态AI再进化
如果你最近也在跟踪 2026 年的 AI 动态,应该会发现一个很明显的变化:大模型的竞争重点,已经从“会不会生成内容”,转向“能不能真正理解复杂任务并参与工作流”。像KULAAI(dl.877ai.cn) 这类 AI 聚合平台&a…...
