Solidity

函式儲存在 EVM 中的什麼位置?

  • November 9, 2022

我知道全域變數儲存在儲存佈局的插槽中。但是函式儲存在哪裡?

我想知道技術上的原因。

基本上,給定一個函式選擇器,您的字節碼知道函式保存在哪裡,並使用選擇器知道將程式碼跳轉到哪裡。

這是一個有用的連結: https ://blog.openzeppelin.com/deconstructing-a-solidity-contract-part-iii-the-function-selector-6a9b6886ea49/

我假設您指的是四個數據儲存位置之一:儲存、記憶體、呼叫數據和堆棧。函式內部聲明的函式參數和變數通常儲存在記憶體數據位置(值類型變數的位置儲存在記憶體中,而引用類型變數的位置儲存在儲存器中)。

函式內部聲明的函式參數和變數儲存在記憶體中,因為它們是短暫的並且在函式範圍內是局部的。

請參閱:https ://subscription.packtpub.com/book/application-development/9781788831383/3/ch03lvl1sec38/storage-and-memory-data-locations

引用自:https://ethereum.stackexchange.com/questions/139087