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调用的核心准备步骤

相关推荐
wuminyu12 分钟前
Kafka中sendfile与mmap实现机制解析
java·linux·c语言·jvm·c++
Blockbuater_drug1 小时前
FreeSASA: 开源 SASA 计算库,pip 一条命令替代 NACCESS
c语言·开源·sasa·freesasa·溶剂可及表面积·naccess·python api
Logic1012 小时前
C语言/数据结构位运算题解:异或XOR找出蛋糕订单中的“VIP独特口味“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
Logic1013 小时前
C语言/数据结构位运算题解:异或XOR找出飞行棋中的“独特颜色棋子“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
Logic1015 小时前
C语言/数据动态规划题解:翻转一次子数组后的最大子数组和——四状态DP(O(n)时间O(1)空间)
c语言·数据结构·动态规划·时间复杂度·算法题·状态机dp·最大子数组和
Logic1017 小时前
C语言/数据结构字符串题解:找出DNA序列中未配对的独特序列——排序+遍历(O(nlogn))
c语言·数据结构·字符串·数组·排序·时间复杂度·算法题
Navigator_Z7 小时前
LeetCode //C - 1248. Count Number of Nice Subarrays
c语言·算法·leetcode
是隼人8 小时前
buuctf-pwn picoctf_2018_shellcode(ret2shellcode)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
潜创微科技8 小时前
IT6520:USB-C 转 MIPI 高集成控制器,DP 1.4a 转 MIPI 单芯片搞定 4K120 显示
c语言·开发语言·低延迟·掌机·联阳
白色的北极熊9 小时前
字符转 ASCII 码
c语言