fad*_*bee 3 function-call rust
具有函数签名,例如:
pub fn hash(input: &[u8]) -> [u8; 32]
Run Code Online (Sandbox Code Playgroud)
这 32 个字节如何传递给调用函数?(在优化之前,可能会将某些部分放入寄存器中。)
可能性包括:
free()插入到调用函数中。只是好奇,我不需要这些信息。答案可能因架构而异。
既不涉及副本也不涉及堆分配。
调用者函数为其堆栈上的值分配空间。被调用者需要一个额外的隐藏参数,即返回值的地址。它将值写在那里。调用者将其堆栈上分配的空间的地址作为隐藏参数的值传递。
当然,这一切都无法保证。这就是它现在的运作方式。