2

可能重复:
C 中的函数指针如何工作?

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

提前致谢 !

编辑:这个问题不是关于函数指针的使用,如“ C 中的函数指针如何工作? ”中所述。这是关于它们如何实现的内部工作原理。

4

2 回答 2

1

是的,它们只是指向函数位置的指针,与指向数据的指针相同。但是,根据 CPU 体系结构,当使用函数指针时,实际的程序集可能会完全不同,因为与数据相比,函数可以存储在不同类型的内存中。

于 2012-12-04T22:34:05.707 回答
1

维基百科上的文章(http://en.wikipedia.org/wiki/Function_pointer)充分解释了它;“函数指针不是引用数据值,而是指向内存中的可执行代码。取消引用时,函数指针可用于调用它指向的函数并传递参数,就像普通函数调用一样。”

于 2012-12-04T22:35:42.937 回答