【问题标题】:What's the equivalent call() apply() of JavaScript in C? [closed]C 中 JavaScript 的等效 call() apply() 是什么? [关闭]
【发布时间】:2012-09-09 04:48:13
【问题描述】:

在 Java 中是:

  • java.lang.reflect.Method

在 JavaScript 中是:

  • apply() ⟶ 更像java.lang.reflect.Method

  • call() ⟶ 更像 C 中的函数指针

在 C 中是:

  • type (*varname)(Type1 label1,Type2 label2,Type3 label3)call()

  • apply()java.lang.reflect.Method 在 C 中的等价物是什么?

------------我很慢,来自eyalm的回答:

调用者将被调用者视为:

  • int (*a)(char 值);

并且被调用者将堆栈帧视为:

  • 类型 (*varname)(Type1 label1,Type2 label2,Type3 label3 ...)

----我说的对吗?

【问题讨论】:

  • 来吧,不要这样对我,这是一个很有针对性的问题。我确实做了不熟练的研究。

标签: javascript c function reflection call


【解决方案1】:

对于函数指针:

int (*a)(char *);

你可以打电话……等等……

a("ggffgfgg");

【讨论】:

  • 在我看来你是超级资深的,谢谢...
  • 逻辑上是这样,但这是官方的方式吗?(我很抱歉这么说但很担心)
  • @Johnny:这是通过指针调用函数的两种方式之一。另一个是(*a)("ggffgfgg");。很久以前,在 C 标准出现之前,这是通过函数指针调用函数的唯一方法。 C 标准允许 eyalm 给出的答案(这可能是当今使用更广泛的表示法——虽然我自己更喜欢旧方法,但我也很古老)。
  • 这相当于call(),而不是apply()。对于apply,您必须做一些有趣的事情,例如将所有参数放入一个结构并按值传递...
  • 感谢 15 个字符,DCoder。
猜你喜欢
  • 2019-12-22
  • 2016-03-17
  • 2012-07-02
  • 2016-07-14
  • 1970-01-01
  • 2022-02-06
  • 2013-11-14
  • 2016-07-04
  • 1970-01-01
相关资源
最近更新 更多