В стандарте языка программирования С определен такой термин, как «trap representation»:
3.19.4
trap representation
an object1 representation2 that need not represent a value3 of the object4 type
Суть trap representation вкратце такова.
Допустим, у нас в памяти компьютера есть область размером в 1 байт, в которой хранятся биты 1000 1010
. Назовем ее A.
Допустим также, что у нас есть два типа размером 1 байт: целое-число
и дробное-число
. Тип целое-число
не имеет trap representation, то есть любая комбинация из 8 бит является корректным значением типа целое-число
. В то же время тип дробное-число
имеет одно trap representation — 1000 0000
.
Тогда если мы попытаем использовать то, что находится в A как значение типа целое-число
, то все будет нормально, так как 1000 1010
не является trap representation для типа целое-число
. Использовать — применить в арифметическом выражении (A + 3) или, допустим, в сравнении (A > 9) и т. д.
Тогда если мы попытаем использовать то, что находится в A как значение типа дробное-число
, то получим ошибку, потому что комбинация битов 1000 0000
является trap representation для типа дробное-число
.
Как можно настолько же выразительно перевести этот термин на русский язык?
P. S. Прошу прощение за такое большое количество сносок и объяснений. Просто попытался как можно точнее обозначить контекст использования этого термина.
1) object — region of data storage in the execution environment, the contents of which can represent values.
2) representation — грубо говоря, просто определенный набор битов в памяти.
3) value — precise meaning of the contents of an object when interpreted as having a specific type.
4) object — region of data storage in the execution environment, the contents of which can represent values.