Solidity
uint8 vs uin256 常量變數
為什麼人們將 uint8 用於常量變數,例如用於標記的小數,使用 uint256 不是更好嗎?EVM 需要使用額外的呼叫才能從 256/32 位變為 8 位,因此會增加 gas 成本
uint8
啟用優化後,使用常量而不是常量將不會產生額外的 gas 成本uint256
。轉換指令被完全優化掉。禁用優化後,會有一點額外的 gas 成本。
我剛剛對其進行了測試,在禁用優化的情況下,使用
uint8
常量比使用常量多出 3 個字節的字節碼uint256
。啟用優化後,Solidity 編譯器在兩種情況下都提供完全相同的字節碼。