Контекст:
Это в основном продолжение , что другой вопрос . OP хотел угадать, содержит ли переменная int или нет, и я сначала подумал, что в C (как в C ++) переменная int может содержать только значение int. И Eri c Postpischil напомнил мне, что представления ловушек были разрешены для стандарта для типа int ...
Конечно, я знаю, что в большинстве современных систем используются только представления с 2 дополнениями целые числа и никакие биты заполнения, означающие, что представление ловушки не может наблюдаться. Тем не менее оба стандарта, по-видимому, по-прежнему допускают 3 представления типов со знаком: знак и величина, одно дополнение и два дополнения. И, по крайней мере, черновик C18 (n2310 6.2.6 Представления типов) явно позволяет заполнять биты для целочисленных типов, отличных от char.
Вопрос
Таким образом, в контексте возможных битов заполнения или не двоичных чисел дополнить представление со знаком, переменные int
могут содержать значения ловушек для соответствующих реализаций. Есть ли надежный способ убедиться, что переменная int содержит допустимое значение?