我已经在C中看到了函数指针的用法。我想知道它们是如何在C的幕后完全实现的?它们只是指向功能指令的存储位置吗?如果是这样或那样,如果有人可以图解地显示/详细说明(或指向一些在线资源)它们是如何工作的,我将不胜感激?
提前致谢!
编辑:这个问题不是关于函数指针的使用,如“How do function pointers in C work?”中所述。这是关于它们如何实施的内部运作方式。
答案 0 :(得分:1)
是的,它们只是指向函数位置的指针,与指向数据的指针相同。但是,根据CPU架构,当使用函数指针时,实际的汇编可能会大不相同,因为与数据相比,函数可以存储在不同类型的内存中。
答案 1 :(得分:1)
维基百科上的文章(http://en.wikipedia.org/wiki/Function_pointer)完全解释了它的陈述; “而不是引用数据值,函数指针指向内存中的可执行代码。当取消引用时,可以使用函数指针来调用它指向的函数,并像正常函数调用一样传递参数。”