Список платформ, поддерживаемых стандартом C

Кто-нибудь знает какие-либо платформы, поддерживаемые стандартом C, для которых все еще ведется активная разработка, но которые:

  • не являются дополнением до 2 или
  • целочисленная ширина не равна 32 битам или 64 битам или
  • некоторые целочисленные типы имеют биты заполнения или
  • , если вы работали на машине с дополнением до 2, битовая комбинация со знаком бит 1 и все нулевые биты значения не являются допустимым отрицательным числом или
  • целочисленным преобразованием от знакового к беззнаковому (и наоборот) не происходит дословным копированием битовых шаблонов или
  • сдвиг вправо целого числа не является арифметическим сдвигом или
  • количество битов значения в беззнаковом типе не является количество битов значения в соответствующем знаковом типе + 1 или
  • преобразование из более широкого типа int в меньший тип не происходит путем усечения крайних левых битов, которые не подходят для

РЕДАКТИРОВАТЬ: В качестве альтернативы, если в период с 1995 по 1998 год существуют платформы, которые повлияли на решение C99 о включении вышеупомянутого, но которые были прекращены, мне было бы интересно их тоже.

РЕДАКТИРОВАТЬ: Обоснование C говорит о битах заполнения:

Биты заполнения доступны пользователю в целочисленном типе без знака. Например, предположим, что машина использует пару 16-битных шорт (каждый со своим собственным битом знака) для создания 32-битного int, а знаковый бит младшего шорт игнорируется при использовании в этом 32 -бит int. Затем, в качестве 32-битного подписанного int, есть бит заполнения (в середине 32-х битов), который игнорируется при определении значения 32-битного подписанного int. Но если этот 32-разрядный элемент обрабатывается как 32-разрядное целое число без знака, то этот бит заполнения виден для пользовательской программы.Комитету C сказали, что существует машина, которая работает таким образом, и это одна из причин, по которой биты заполнения были добавлены в C99.

В сносках 44 и 45 упоминается, что биты четности могут быть битами заполнения. Комитету не известны машины с доступными для пользователя битами четности в пределах целого числа. Поэтому комитету неизвестны машины, которые обрабатывают биты четности как биты заполнения.

Итак, еще один вопрос: что это за машина, о которой упоминал C99?

РЕДАКТИРОВАТЬ: Похоже, что C99 рассматривал вопрос об удалении поддержки дополнения до единицы и величины со знаком: http://www.open-std.org /jtc1/sc22/wg14/www/docs/n868.htm http://www.open-std.org/jtc1/sc22/wg14/www/docs/n873.htm (поиск 6.2. 6.2)

24
задан Andrew Medico 21 May 2014 в 16:15
поделиться