C中的自修改代码:使用函数指针?

时间:2014-01-04 20:57:22

标签: c function pointers self

我有一个关于C中自修改代码的问题。我有一个用C编写的程序,和 我的目标是通过自修改代码来改变功耗!

如何用C编写自修改代码,在每次运行特定指令(如nop)后更改。我应该在c中使用函数指针吗?

1 个答案:

答案 0 :(得分:5)

不,在C语言中没有标准的自修改代码方式,语言不支持它。

存在“hacks”,即围绕语言的方式,但它们都需要您下降到汇编级别并欺骗以覆盖包含代码的内存。缓存,写保护代码空间等存在问题。

关于函数指针,你唯一可以知道的就是可以调用它们。您不能假设指针以任何明显的方式转换为指向实际指令的指针,语言并不能保证这一点(尽管典型架构上的大多数编译器都会以“显而易见的方式”实现函数指针)。