Solidity

uint8 vs uin256 常量變數

  • October 7, 2017

為什麼人們將 uint8 用於常量變數,例如用於標記的小數,使用 uint256 不是更好嗎?EVM 需要使用額外的呼叫才能從 256/32 位變為 8 位,因此會增加 gas 成本

uint8啟用優化後,使用常量而不是常量將不會產生額外的 gas 成本uint256。轉換指令被完全優化掉。

禁用優化後,會有一點額外的 gas 成本。

我剛剛對其進行了測試,在禁用優化的情況下,使用uint8常量比使用常量多出 3 個字節的字節碼uint256

啟用優化後,Solidity 編譯器在兩種情況下都提供完全相同的字節碼。

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