Проверка границ Паскаля (стандартная)

Простой вопрос: включает ли Паскаль проверку границ в исходном стандарте (ISO 7185)?

Я нигде не вижу упоминаний об этом ( http://www.pascal-central.com/standards.html) или, может быть, я только слепой.

Я знаю, что в некоторых компиляторах Pascal я могу выбирать, где проверять границы или нет, для меня важно то, как обстоят дела с этим стандартом.

1 ответ

Решение

Я давно не смотрел на стандарт, поэтому мои знания немного устарели, но да, проверка границ включена в стандарт (ISO 7185). Стандарт требует, чтобы 1. индексы массива были действительными (см. Indexed-переменные), и 2. все значения совместимы по присваиванию с присваиваемой переменной (см. Совместимость по присваиванию).

Однако в стандарте также говорится, что ошибкой является "Нарушение программой требований настоящего международного стандарта, что процессору разрешено оставлять необнаруженным" (см. " Ошибка"). Неправильная индексация массива и присвоение вне диапазона являются нарушениями этого стандарта и являются ошибками.

Другие вопросы по тегам