[protobuf] enumerated types

2011-03-17 Thread AdrianPilko
Are google protocol enumerated types (when built for C++)  held in
memory from least significant bit zero. In other words does the
following enum fit in the least significant 2 bits of say an int:

enum my2BitEnum {
a = 0;
b = 1;
c = 2;
d = 3;
  }

...and does my8BitEnumQuestion only fit in a byte sized type (eg
char), or is it packed somehow to fit in the same memory space as
my2BitEnum:

enum my8BitEnumQuestion {
a = 252;
b = 253;
c = 254;
d = 255;
  }

Thankyou
Adrian

-- 
You received this message because you are subscribed to the Google Groups 
Protocol Buffers group.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.



Re: [protobuf] enumerated types

2011-03-17 Thread Jason Hsueh
The protocol compiler just generates C++ code. How the enum is represented
in memory is entirely up to your C++ compiler. The standard allows the
compiler to choose the size of the enum (with the restriction that it should
be not more than sizeof(int)). I would guess that a typical compiler would
represent both enums below as a single byte.

On Thu, Mar 17, 2011 at 3:40 AM, AdrianPilko adrian.pi...@googlemail.comwrote:

 Are google protocol enumerated types (when built for C++)  held in
 memory from least significant bit zero. In other words does the
 following enum fit in the least significant 2 bits of say an int:

 enum my2BitEnum {
a = 0;
b = 1;
c = 2;
d = 3;
  }

 ...and does my8BitEnumQuestion only fit in a byte sized type (eg
 char), or is it packed somehow to fit in the same memory space as
 my2BitEnum:

 enum my8BitEnumQuestion {
a = 252;
b = 253;
c = 254;
d = 255;
  }

 Thankyou
 Adrian

 --
 You received this message because you are subscribed to the Google Groups
 Protocol Buffers group.
 To post to this group, send email to protobuf@googlegroups.com.
 To unsubscribe from this group, send email to
 protobuf+unsubscr...@googlegroups.com.
 For more options, visit this group at
 http://groups.google.com/group/protobuf?hl=en.



-- 
You received this message because you are subscribed to the Google Groups 
Protocol Buffers group.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.