Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
ВнизОптимизация кода Найти похожие ветки
← →
konstantinov (2003-12-02 00:44) [0]Есть некая переменная, тип которой может быть различного поддиапазона
В зависимости от значения некой другой переменной.
Не хочется каждый раз, приприсвоении значения переменной проверять попадает ли она
в нужный диапазон.
( Длительный цикл, лишняя проверка = лишние переходы = лишние тормоза )
Как правильно реализовать подобное?
К примеру если объявить А : byte;
и в цикле использовать Inc(A), то никогда за пределы диапазона 0..255 не выйдем.
попробовал реализоват это следующим образом:
type
type1 = 0..35;
type2 = 25..240;
var Value : variant;
A1 : type1;
A2 : type2;
C : boolean;
begin
...
if C then Value := A1 пытаемся определиться с типом переменной
else Value := A2;
for I := 0 to 100000000 do Inc(Value);
увы, не прокатило ...
← →
dmk (2003-12-02 02:39) [1]Лучше изменить код, чтобы использовать функции с директивой Overload.
← →
SkyRanger (2003-12-02 04:12) [2]Попробуй использовать in, хотя это может работать тока со множествами set of
← →
TUser (2003-12-02 11:49) [3]Лучше объявить все это пропертями. И при присвоении значения проверять. По-моему, тормозить все это будет не очень сильно.
Что касается byte, то он просто ало памяти занимает, поэтому и не будет больше 255. В принцыпе, можно самому зарегистрировать свой тип, занимающий в памяти, допустим, 3 байта, и к нему придумать арифметические операции, но тут дебе нужен не Паскаль, а Си.
← →
Юрий Зотов (2003-12-02 14:15) [4]> TUser © (02.12.03 11:49) [3]
> нужен не Паскаль, а Си.
Разве? А что, процедуры и функции в Паскале уже отменили? Непременно нужна перегрузка и иначе никак?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c