Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизКонтоль диапазонов при компиляции Найти похожие ветки
← →
leonidus (2005-03-06 12:37) [0]Подскажите пожалуйста где в IDE включается контроль диапазонов, т.е. что бы на этапе компиляции компилятор сам находит ошибки типа:
var
a:array[1..10] of string;
begin
i:=1 to 1000 do
a[i]:="";
← →
MU © (2005-03-06 12:45) [1]На этапе выполнения Project Options->Compiler->Range Checking
На этапе компиляции - в голове, я думаю
← →
Юрий Зотов © (2005-03-06 12:46) [2]Project | Options, вкладка Compiler, птичка Range checking.
← →
leonidus (2005-03-06 12:48) [3]спасибо большое
← →
Юрий Зотов © (2005-03-06 12:51) [4]Сорри, невнимательно прочитал вопрос. Отлов подобных ошибок на этапе компиляции можно сделать так:
type
TRange = 1..10;
var
i: TRange;
a: array[TRange] of string;
← →
leonidus (2005-03-06 13:27) [5]Че-то не прокатывает, конструкция
var
a:array[1..10] of string;
i:integer;
begin
for i:=1 to 100 do
a[i]:="";
совершенно нормально компилируется...
← →
MU © (2005-03-06 13:33) [6]или [4] (тогда компилятор отловит)
или использовать такой код
for i := Low(a) to High(a) do
a[i] := "0";
← →
Anatoly Podgoretsky © (2005-03-06 14:02) [7]Поскольку нет явного (литерального) выхода за границы, то компилятору нечего тут делать - это работа для рантайм. И не надо на это расчитывать, надо писать правильно, пример такого грамотного написания в сообщении [6]
А пример грамотноного описания массива в [4]
← →
Anatoly Podgoretsky © (2005-03-06 14:06) [8]А добавив в ътому еще и значимые имена избежим еще и много ошибок. Ну что такое [1..10] ведь это что то значит, значит создать значимый тип. Например для месяцев
type
TMonthRange = 1..12;
var
i: TMonthRange;
a: array[TMonthRange] of string;
begin
for i := Low(a) to High(a) do
a[i] := "0";
end;
А если вспомнить еще что есть перечисленные типы, то будет совсем хорошо. Возможно это 1..10 надо было перечислить.
← →
leonidus (2005-03-06 18:15) [9]хорошо, понял, всем большое спасибо.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c