Соответствует ли каждый из стандартов C и С++ sizeof числовых типов не равным двум?
Известны следующие ограничения:
-
16 <= CHAR_BIT * sizeof(int) <= CHAR_BIT * sizeof(long) -
32 <= CHAR_BIT * sizeof(long) <= CHAR_BIT * sizeof(long long) - и еще десяток других, которые по типичной 8-битовой архитектуре байта означают
2 <= sizeof(int) && 4 <= sizeof(long)
Означает ли это, что sizeof(int) == 3 && sizeof(long) == 5 является допустимым поведением?
Если да - существует ли какой-либо известный компилятор/архитектура, работающая аналогичным образом?