C中的函数指针实际上如何工作?

时间:2012-12-04 22:31:12

标签: c function-pointers

  

可能重复:
  How do function pointers in C work?

我已经在C中看到了函数指针的用法。我想知道它们是如何在C的幕后完全实现的?它们只是指向功能指令的存储位置吗?如果是这样或那样,如果有人可以图解地显示/详细说明(或指向一些在线资源)它们是如何工作的,我将不胜感激?

提前致谢!

编辑:这个问题不是关于函数指针的使用,如“How do function pointers in C work?”中所述。这是关于它们如何实施的内部运作方式。

2 个答案:

答案 0 :(得分:1)

是的,它们只是指向函数位置的指针,与指向数据的指针相同。但是,根据CPU架构,当使用函数指针时,实际的汇编可能会大不相同,因为与数据相比,函数可以存储在不同类型的内存中。

答案 1 :(得分:1)

维基百科上的文章(http://en.wikipedia.org/wiki/Function_pointer)完全解释了它的陈述; “而不是引用数据值,函数指针指向内存中的可执行代码。当取消引用时,可以使用函数指针来调用它指向的函数,并像正常函数调用一样传递参数。”