c - 如何在 C 中保留函数指针?

标签 c function function-pointers jit

假设我有一个函数指针,可以调用它来完成一些任务。如何将指针指向的代码片段存储到磁盘上的文件中,以便稍后加载文件并使函数指针再次可用?

用例:这将在 JIT 编译器内部完成,以防止在下一次运行同一程序时产生 JIT 开销。

编辑:“Save and load function pointers to file”的答案不是我要找的。该问题涉及人们建议使用索引的有限数量的功能。但就我而言,函数可以是任何内容。

最佳答案

没有可移植的方法来做到这一点。您的选择是:

  • 将指针与您选择的符号名称相关联,例如使用全局映射表,并将函数名序列化。在反序列化时,查找映射中的实际指针。

  • 序列化真正的函数名称,可能还包含在映射中。在反序列化时,使用 dlsym (或非 Unix 平台上的等效项,例如 GetProcAddress)获取函数指针。

关于c - 如何在 C 中保留函数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35151633/

相关文章:

c - 段错误解析json-c

mysql - 存储的函数计算出不正确的值

javascript - javascript 函数只能运行一次

swift - 如何从 ViewController 或其他地方调用或触发 AppDelegate 中的通知函数?

java - Java中的函数指针

c - 哲学家餐饮计划C

c - Ansi C 中的 Netdb.h

c - memset 重新分配内存为 0 是常见做法吗?

使用夹具的 C++ GoogleTest - 函数指针定义不可访问

c++ - 当我使用函数指针变量消失