@chrisname: I said very similar to C++, so that means there is a guarantee of there being at least 8 bits to a byte. 'At least' is good enough for me :)
I was referring to {this is a possible option|and this is another}.
I said very similar to C++, so that means there is a guarantee of there being at least 8 bits to a byte.
But C++ doesn't guarantee that.
The fundamental storage unit in the C++ memory model is the byte. A byte is at least large enough to contain any member of the basic execution character set and is composed of a contiguous sequence of bits, the number of which is implementation-defined.
The basic execution character set [shall] contain all the members of the basic source character set, plus control characters representing alert, backspace, and carriage return, plus a null character (respectively, null wide character), whose representation has all zero bits.
I'm not sure what "the basic execution character set" means but I would think 7 bits was the minimum, since that's how many bits you need to store any character from the standard ASCII set.
I didn't pick up on what was so different than C++. I use uint64_t's and the like all of the time, as do many organizations. A pointer, a char, whatever all boil down to just numbers, do they not?
@Luc:
It's rather simple, actually. If the developers for any reason need to change the types of a large number of internal variables, then by using typedefs of simple variables for all of them, then the process becomes that much easier.
If the developers for any reason need to change the types of a large number of internal variables, then by using typedefs of simple variables for all of them, then the process becomes that much easier.
If you are calling a type MY_LIBRARY_INT_8_T you very likely aren't going to change it's definition, and if you do the result would probably be that the name is a lie.