From 1dc49788839f254b1f41a4f3d9286172a3c70bc8 Mon Sep 17 00:00:00 2001 From: chriseth Date: Thu, 9 Aug 2018 01:00:20 +0200 Subject: [PATCH] Clarify data representation of enums. --- docs/types.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/types.rst b/docs/types.rst index c216fd837..78451b39f 100644 --- a/docs/types.rst +++ b/docs/types.rst @@ -368,6 +368,10 @@ Enums are one way to create a user-defined type in Solidity. They are explicitly to and from all integer types but implicit conversion is not allowed. The explicit conversions check the value ranges at runtime and a failure causes an exception. Enums needs at least one member. +The data representation is the same as for enums in C: The options are represented by +subsequent unsigned integer values starting from ``0``. + + :: pragma solidity ^0.4.16; @@ -384,7 +388,7 @@ check the value ranges at runtime and a failure causes an exception. Enums need // Since enum types are not part of the ABI, the signature of "getChoice" // will automatically be changed to "getChoice() returns (uint8)" // for all matters external to Solidity. The integer type used is just - // large enough to hold all enum values, i.e. if you have more values, + // large enough to hold all enum values, i.e. if you have more than 256 values, // `uint16` will be used and so on. function getChoice() public view returns (ActionChoices) { return choice;