澄清c中回调和函数指针的概念

时间:2013-05-05 18:42:38

标签: c function pointers callback function-pointers

我在维基百科上找到了关于函数回调的这一行, “在计算机编程中,回调是对可执行代码或一段可执行代码的引用,它作为参数传递给其他代码。这允许较低级别的软件层调用在其中定义的子例程(或函数)。更高层。“

我没有得到“这允许更低级别的软件层调用更高级别层中定义的子例程(或函数)。”我想知道我们不能直接调用更高级别的函数?

1 个答案:

答案 0 :(得分:2)

其中一个优点是 -

回调 - 函数指针 - 使函数名变量。您可以使用任何名称定义函数,并将其作为函数指针传递给较低层。

否则,每次更高级别都必须定义具有相同名称的函数。

此外,这使得更高层和更低层非常松散地耦合。如果下层直接使用函数名,则需要在编译期间解析它。如果下层是共享库,那么链接器将引发错误并且无法编译它。