
----Original Message---- From: Chris Cleeland
On Fri, 13 Jan 2006, Christopher Kohlhoff wrote:
Some thoughts, both for and against:
- Does unsigned char always imply 0..255? No.
Might there be a standards-conforming C++ implementation where char is not 8 bits? Yes. Plausible other values are 9 (for 36-bit word addressed machines), and 32 (for DSPs where it is just too much heartache to slice a 32-bit word).
(Admittedly porting a sockets library, which inherently deals in sequences of octets, to this architecture could be rather difficult.) Not as bad as you think. Each octet must be able to fit into an unsigned char. It's just that an unsigned char can hold a value which doesn't fit in an octet.
Good question; I know that sizeof(char) == sizeof(unsigned char) == 1, but I don't know that it's guarantee anywhere that something that has a sizeof==1 is exactly 8 bits.
It isn't. It is defined that unsigned char has AT LEAST 8 bits (because it can hold 0..255). -- Martin Bonner Martin.Bonner@Pitechnology.com Pi Technology, Milton Hall, Ely Road, Milton, Cambridge, CB4 6WZ, ENGLAND Tel: +44 (0)1223 203894