Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
void aIs(sometype temp) { a = temp; } ..... aIs(X); aIs(Z);
Или с помощью if, switch, или опять-таки с помощью ф-ии (GetA(), например).
А вообще, вопрос поставлен нечётко и непонятно
Или с помощью if, switch, или опять-таки с помощью ф-ии (GetA(), например).
Или так
enum { varX,varY,varZ} var_name = varY; A = (var_name==varX ? X : var_name==varY ? Y : Z);
Полагаю, автор хочет во время исполнения кода волшебным образом менять выражение "A=X" на "A=Y" и аналогичные.
Правда, преимущества в скорости все равно не получим, и даже наоборот. Сильно наоборот.Не знаю, зачем это ему. Подобные трюки я только в ассемблере проделывал, модифицируя код во время его исполнения. Преимущество было в том, что проверка условия выносилась за пределы цикла, и благодаря этому можно было получить заметное ускорение. Но это было в те времена времена, когда быстродейстие процессора не сильно опережало обмен данными с памятью, а запрещать модификацию кода на уровне системы было не принято.
А еще подобное можно проделать в скриптовых языках.
Кстати, можно использовать глобальные переменные
И ясности кода такие конструкции не добавят.
Какие еще есть версии, господа телепаты?
Полагаю, автор хочет во время исполнения кода волшебным образом менять выражение "A=X" на "A=Y" и аналогичные.
Не знаю, зачем это ему.
Какие еще есть версии, господа телепаты?
:) Телепато-версия такова: есть три переменные int var1,var2,var3;. И есть оператор for. Хочется прогнать эти три переменные в цикле for(int i=1;i<=3;i++), чтобы цикл обрабатывал их по очереди, на каждой итерации по одной переменной. Но не понятно, как сопоставить переменную 'i', принимающую значения 1-2-3, с переменными var1-var2-var3.
Массивы не предлагать :):):)
Академические изыскания конечно вещь интересная,
но всё равно в конечном счёте придёт время писать алгоритм,
а в алгоритме главное не выверт мозга,
а скорость и точность работы,
так же понятность кода для других (как было уже сказано)
"программисты удивляются когда узнаю что пишут код для других программистов"(с).
:) Телепато-версия такова: есть три переменные int var1,var2,var3;. И есть оператор for. Хочется прогнать эти три переменные в цикле for(int i=1;i<=3;i++), чтобы цикл обрабатывал их по очереди, на каждой итерации по одной переменной. Но не понятно, как сопоставить переменную 'i', принимающую значения 1-2-3, с переменными var1-var2-var3.
Массивы не предлагать :):):)
Ввести в MQL5 шаблоны (template), как в С++ ;)
Правда, то же самое можно было бы сделать и через указатели, которые есть в MQL4 и MQL5.
Ввести в MQL5 шаблоны (template), как в С++ ;)
Человек хочет во время исполнения код менять.
В MQL5 указатели неполноценные. Придется объекты городить. Впрочем, как очередной вариант извращений подойдет.
а в алгоритме главное не выверт мозга
"программисты удивляются когда узнаю что пишут код для других программистов"(с).
Человек хочет во время исполнения код менять.
В MQL5 указатели неполноценные. Придется объекты городить. Впрочем, как очередной вариант извращений подойдет.
А иногда бывает нужно удивлять других программистов. Может быть, человеку нужен доступ к полиморфик-технологиям для осложнения дизассемблирования советника.А что, уже кто-то дезассемблировал?
Фактов у меня нет. Но угрозы возможны. Например https://www.mql5.com/ru/forum/21/page2#comment_491
Действительно, я имел ввиду дизассемблирование. Я, как это часто бывает со всеми, судил по своим возможностям. Для меня - это равносильно декомпиляции поскольку восстановить алгоритм из ассемблерного текста в большинстве случаев для меня раз плюнуть. Конечно, этот процесс можно сильно усложнить, взяв на вооружнение алгоритмы полиморфных вирусов, но в конечном счете, раз существуют антивирусы, значит и этот прием не дает полной гарантии.
Фактов у меня нет. Но угрозы возможны. Например https://www.mql5.com/ru/forum/21/page2#comment_491
C тех пор много времени прошло, но декомпилятора пока нет (не отрицаю, что возможно, когда-нибудь появится).
Зато, можно использовать OpenCL - сам не разбирался (т. к. для WinXP64 bit нет соответствующего SDK от Intel, да и не нужен он мне пока), но из отрывочных сведений помню, что код OpenCL-программы формируется в виде строки и передаётся дальше. Вот эту строку можно менять как угодно. Правда, что легче оттрейсить - ex5 или на-лету OpenCL - мне неведомо.