我见过它在编程中使用(特别是在C++领域),但不知道它是什么。这可能是一种设计模式,但我可能错了。有没有人能举个很好的例子?
发布于 2010-04-15 08:32:59
thunk通常是指作为函数调用的一小段代码,做一些小事情,然后JUMPs到另一个位置(通常是一个函数),而不是返回给它的调用者。假设跳转目标是一个普通函数,当它返回时,它将返回给thunk的调用者。
Thunk可以用来高效地实现许多有用的东西
thunk来适当地转换参数。这只在返回约定兼容的情况下才有效,但这通常是this指针以使其指向正确的位置。thunk (通常在堆栈上),它在一些寄存器中设置上下文信息,然后跳转到实现闭包功能的静态代码段。这里的thunk实际上是为函数提供了一个或多个隐藏的额外参数,而调用站点并没有提供这些参数。发布于 2010-04-15 06:25:59
在计算机科学中,单词thunk至少有三个相关的含义。"thunk“可能是:
我经常看到它被用在第三个上下文中。
http://en.wikipedia.org/wiki/Thunk
发布于 2015-07-18 11:25:19
术语thunk最初指的是Algol60编译器中按名称传递的Royal Radar Establishment实现所使用的机制。一般来说,它指的是在引用一个明显是静态的对象时,引发动态行为的任何方式。这个术语是由Brian Wichmann发明的,当他被要求解释按名称传递时,他说:“好吧,你出去从内存中加载值,然后突然-砰--你就在那里计算一个表达式。”
Thunk已放入硬件中(请参阅KDF9、Burroughs mainframes)。有几种方法可以在软件中实现它们,所有这些都是特定于机器、语言和编译器的。
这个术语已经超越了通过名称传递的范围,包括任何表面上或名义上的静态数据引用导致动态行为的情况。相关术语包括“弹床”和“未来”。
https://stackoverflow.com/questions/2641489
复制相似问题