C#委托所蕴含的函数指针概念详细解析

Kiona ·
更新时间:2024-11-10
· 547 次阅读

原则:

1、函数指针,实际上是函数编码后的指令在内存中的首地址,在C++/C中,这个地址可以用函数名直接使用

一个函数调用另一个函数的时候,就可以把被调用函数以函数指针的形式作为参数传入

2、回调函数callback使用的技术就是函数指针:

回调函数就好像是一个中断处理函数,系统在符合你设定的条件时自动调用。为此,你需要做三件事:

1). 声明;

2). 定义;

3). 设置触发条件,就是在你的函数中把你的回调函数名称转化为地址作为一个参数,以便于DLL调用。

回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会调用该函数。回调函数必须遵守事先规定好的参数格式和传递方式,否则DLL一调用它就会引起程序或系统的崩溃。通常情况下,回调函数采用标准WindowsAPI的调用方式,即__stdcall,当然,DLL编制者可以自己定义调用方式,但客户程序也必须遵守相同的规定。在__stdcall方式下,函数的参数按从右到左的顺序压入堆栈,除了明确指明是指针或引用外,参数都按值传递,函数返回之前自己负责把参数从堆栈中弹出。

3、C#中用委托这种概念实现了函数指针技术而已,另外.ent提供额外的安全性,当然也损失了灵活性

您可能感兴趣的文章:详解C语言结构体中的函数指针深入学习C语言中的函数指针和左右法则详解C++中的指针、数组指针与函数指针C++普通函数指针与成员函数指针实例解析c++传递函数指针和bind的示例c++回调之利用函数指针示例c++函数指针使用示例分享函数指针的一些概念详解函数指针与指针函数的学习总结C++编程中的函数指针初步解析



c#委托 函数 函数指针 C# 指针

需要 登录 后方可回复, 如果你还没有账号请 注册新账号