Если мне не изменяет память, то предыдущие версии компилятора "ругались" на попытку задать
слишком большое число итераций в цикле (LONG_MAX и ULONG_MAX), а теперь компилятор молчит...
В общем случае компилятор не может знать число итераций.
int f( ulong max )
{
int j = 1;
for ( ulong i = 0; i < max; i += ULONG_MAX )
j = 0;
return ( j );
}
voidOnStart()
{
ulong max = ULONG_MAX;
Print( "j=", f( max )); //результат j=1, а должно быть j=0
}
Я пишу ТЗ для советника на MT4 с приоритетом на ускоренную обработку данных.
Прошу Вас подсказать, имеет ли значение для ускорение работы последовательность выполнения расчета или выборочное (как правильно называется - репрезентативное?).
Прикладываю два варианта в виде картинок, на которых отображены блок схемы.
Если можно, то напишите как должен выглядеть код, если выборочное исполнение блоков будет происходить - чисто примитивный макет, и даст ли это существенный прирост скорости!?
voidOnStart()
{
uchar max=0;
for(int t=0;t<LONG_MAX;t++) {max++;} //так получаем предупреждение expression is always true, цикл работаетfor(int t=0;t<LONG_MAX+1;t++) {max++;} //так предупреждение есть, но цикл не работаетfor(int t=0;t<ULONG_MAX;t++) {max++;} //так нет предупреждения и цикл не пашетPrint("Done!");
}
Такое чувство, что в цикл управление вообще не передаётся.
Так на самом деле и есть, зато быстро :)
Если мне не изменяет память, то предыдущие версии компилятора "ругались" на попытку задать
слишком большое число итераций в цикле (LONG_MAX и ULONG_MAX), а теперь компилятор молчит...
У меня версия 910 32 bit.
Молчит и "быстро считает" даже так:
Хотя, по идее, должен бы впасть в бесконечный цикл.Где не надо ругается, а где надо поругаться - молчит.
Их нравы!
Если мне не изменяет память, то предыдущие версии компилятора "ругались" на попытку задать
слишком большое число итераций в цикле (LONG_MAX и ULONG_MAX), а теперь компилятор молчит...
В общем случае компилятор не может знать число итераций.
В общем случае компилятор не может знать число итераций
Я пишу ТЗ для советника на MT4 с приоритетом на ускоренную обработку данных.
Прошу Вас подсказать, имеет ли значение для ускорение работы последовательность выполнения расчета или выборочное (как правильно называется - репрезентативное?).
Прикладываю два варианта в виде картинок, на которых отображены блок схемы.
Если можно, то напишите как должен выглядеть код, если выборочное исполнение блоков будет происходить - чисто примитивный макет, и даст ли это существенный прирост скорости!?