【问题标题】:When a function is called by another function, what is the technical term for it?当一个函数被另一个函数调用时,它的技术术语是什么?
【发布时间】:2014-09-03 13:18:20
【问题描述】:

我正在尝试解决给我的一个谜题,我必须回答问题才能解密某些东西。

基本上我要做的就是回答这些问题:

作为函数参数的指针 = 调用? -> 参考

0xDeadBeef 十进制? -> 3735928559

你把每次调用函数时创建的内存中的位置称为什么? -> 堆栈

非解引用指针的数据类型? -> 无效

作为参数赋予另一个函数的函数的英文术语? -> 论据

这些是我想出的解决方案。它说一个或多个错误的答案,也许你可以帮助我?该程序没有指定哪个答案是错误的,但也许你们中的一些更有经验的编码人员看到我哪里出错了?

提前致谢

【问题讨论】:

  • 每次调用不会创建一次堆栈;一个栈 frame 是。
  • 谢谢这是我弄错的关键字。谜底解决了:)

标签: c function terminology


【解决方案1】:

将一个函数作为参数传递给另一个函数需要一个指向函数的指针。指针被分配了函数的起始地址,因此,通过键入指针名称,程序执行跳转到所指向的例程。通过使用单个指针,可以执行许多不同的例程,只需将指针重定向到另一个函数即可。因此,程序可以使用它来向打印机、控制台设备、磁带机等发送信息,只需将与输出相关的指针指向适当的输出函数! 因此将函数作为参数传递称为函数指针。 堆叠一个函数意味着从另一个函数调用一个函数。

【讨论】:

  • 回调是我的教授。预计虽然。我之前也尝试过functionpointer,但它说错误的答案。无论如何,谢谢伙计!
【解决方案2】:

术语是callback

您可以阅读更多关于它们的信息,例如here

题名有误,和另一个函数调用的函数不一样。 当你说一个函数被另一个函数调用时,人们是这样理解的:

void func1()
{
    func2();
}

func2func1 调用

【讨论】:

  • 我以前试过那个,它说错误的答案,但我可能在其他问题上也错了。对不起,我的英语不好,我用最好的方式翻译了这些问题。
  • @ZakRyze 正如 chepner 在他的评论中指出的那样,你应该用堆栈帧替换堆栈
  • 是的,我后来这样做并得到了结果:) 谢谢
猜你喜欢
  • 1970-01-01
  • 2015-11-08
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-07
  • 1970-01-01
相关资源
最近更新 更多