Foreign Function Interface

通过FFI(外部函数接口)机制,从动态链接库中查找并调用外部函数

同时解析用户输入来动态构建函数调用的签名,实现了对外部函数的灵活调用

要理解这里**ffi(Foreign Function Interface,外部函数接口)**的使用,可以从"不同代码模块如何协作"的角度:

  1. 什么是"外部函数"?

可以把它理解为**"别人家的函数"**------比如这段代码想调用一个不是自己写的、甚至是用其他语言写的函数(比如某个库、某个动态链接里的函数)。

  1. ffi的作用

就像两个人说话需要"翻译"一样,ffi就是"代码世界的翻译官":

  • 它帮我们把"自己代码里的参数类型、返回值类型"和"外部函数要求的类型"对齐。

  • 还能帮我们把"调用外部函数的指令"转成计算机能理解的执行逻辑。

在代码里,它要调用像 InitWindow 这样的外部函数(来自图形库),所以需要ffi来明确参数类型(比如int、指针)、准备调用环境,最终让"自己的代码"能成功调用"别人的函数"。

sum:ffi让你的代码能无障碍地调用其他地方的函数,不管这些函数是用什么写的、存在哪里~


libfii底层

FFI库中不同功能的核心代码片段

定义了FFI支持的基础数据类型(如uint32、pointer等),为跨语言数据传递提供类型标准~

声明了ffi_type结构体,包含数据大小、对齐方式等元信息,用于描述函数参数/返回值的内存布局。

ffi_prep_cif函数接口

用于准备函数调用框架,指定ABI规范、参数类型等,是FFI调用的核心准备步骤

相关推荐
2601_949146531 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
知南x3 小时前
【Ascend C系列课程(高级)】(1) 算子调试+调优
c语言·开发语言
2的n次方_5 小时前
Runtime 执行提交机制:NPU 硬件队列的管理与任务原子化下发
c语言·开发语言
凡人叶枫6 小时前
C++中智能指针详解(Linux实战版)| 彻底解决内存泄漏,新手也能吃透
java·linux·c语言·开发语言·c++·嵌入式开发
凡人叶枫7 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
傻乐u兔8 小时前
C语言进阶————指针3
c语言·开发语言
CodeSheep程序羊9 小时前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
I'mChloe10 小时前
PTO-ISA 深度解析:PyPTO 范式生成的底层指令集与 NPU 算子执行的硬件映射
c语言·开发语言
2的n次方_10 小时前
Runtime 内存管理深化:推理批处理下的内存复用与生命周期精细控制
c语言·网络·架构
嵌入小生00710 小时前
标准IO---核心函数接口延续(嵌入式Linux)
c语言·vscode·vim·嵌入式·小白·标准io·函数接口