>на то он и char чтоб быть 8 битным
Неа. Бывают машины отличные от писюков, с большим размером минимальной единицы адресации.
char - он один байт по определению, а байт - это минимальная единица адресации на архитектуре по определению.
> char - он один байт по определению - Murr(c) (закон Мурра)
Смеялся сегодня над авторами gcc. Представляете, у них там есть константы CHAR_TYPE_SIZE и MAX_CHAR_TYPE_SIZE
Сейчас пишу им письмо с требованием эти константы исключить. На основании вышеуказанного определения. Они, ламеры, о нем еще не знают.
>union
>{
>unsigned char c[2];
>unsigned short int u;
>} tst;
>
>Вот какое. Если уж он предположил, что char=8 бит, то short int из этого кода обязан быть 16 бит :)
А ... это да :)
да нет там такого определения...
прошу прощения за длинную цитату:
3.6
[#1] byte
addressable unit of data storage large enough to hold any
member of the basic character set of the execution
environment
[#2] NOTE 1 It is possible to express the address of each
individual byte of an object uniquely.
[#3] NOTE 2 A byte is composed of a contiguous sequence of
bits, the number of which is implementation-defined. The
4 General �3.6
�ISO/IEC ISO/IEC 9899:1999 (E)
least significant bit is called the low-order bit; the most
significant bit is called the high-order bit.
3.7
[#1] character
<abstract> member of a set of elements used for the
organization, control, or representation of data
3.7.1
[#1] character
single-byte character
<C> bit representation that fits in a byte
3.7.2
[#1] multibyte character
sequence of one or more bytes representing a member of the
extended character set of either the source or the execution
environment
[#2] NOTE The extended character set is a superset of the
basic character set.
3.7.3
[#1] wide character
bit representation that fits in an object of type wchar_t,
capable of representing any character in the current locale
anonymous: ты имеешь в виду, что в ISO C99 не написано определение байта как минимально адресуемой архитектурой единицей памяти (остальное вроде согласуется)?
P.S. Похоже это определение действительно не из ISO, поищу ...
...как-то давно мне пришлось программировать TI34010. Это был бит-адресуемый микропроцессор. В соответствии с вышеуказанным опеределением на нем 1 байт == 1 бит.
ну там же в стандарте в самом начале вроде описывается виртуальная машина на которой работает Си-программа. И в этой машине char это единица измерения. Положить виртуальную машину на реальную это уже вне компетенции Стандарта.