Задача Трассировки (построение графа функций) - страница 3

 
MetaDriver:

В прицепе "концептуальная заготовка", точнее пример реализации.

Плохая новость: Мечту топикстартера об одной трассировочной функции я не сберёг. Прости Сергеев. :)


Владимир, спасибо за труды... но... тут надо только с одной. Иначе топикстартер меня спать не отпустит, а уже очень хочется :)
 
alsu:
А откуда все таки такая странная задача? Стоит ли расходовать усилия на сомнительные изыскания, если можно элементарно сделать ДВЕ функции -на вход и выход - и не париться?
Мало того, с единственной функцией задача неразрешима. Нужны своеобразные скобки - вход и выход. Иначе ниппель получается.. :))
 
alsu:
А откуда все таки такая странная задача? Стоит ли расходовать усилия на сомнительные изыскания, если можно элементарно сделать ДВЕ функции -на вход и выход - и не париться?

Задача как задача. Здесь на форуме еще и не такие странные задачи ходють.

на выход ставить низя... это ж каждый return надо отработать + скобки везде расставлять { }. короче морока еще та.

 
MetaDriver:
Мало того, с единственной функцией задача неразрешима. Нужны своеобразные скобки - вход и выход. Иначе ниппель получается.. :))

Ну а если через хранение промежуточных переменных, которые будут помнить откуда пришли?
 
MetaDriver:

3. В начале проги прописывается два дефайна

круто!

даже не предполагал такое использование #define - собственно директива прекомпилятора, но по книжному, как учили: #define abc 100 использую, а дальше я и не догадывался насколько можно широко использовать #define

отдельное спс!!!

 
IgorM:

круто!

даже не предполагал такое использование #define - собственно директива прекомпилятора, но по книжному, как учили: #define abc 100 использую, а дальше я и не догадывался насколько можно широко использовать #define

отдельное спс!!!

ну, в четверке такое, например, не работает))
 
alsu:
ну, в четверке такое, например, не работает))

тьфу ты, опять на МТ5 затягивают - зарекся я на МТ5 не кодить пока народ после очередного билда МТ5 не перестанет ругаться на новые баги и неисправленные старые- тока время свое тратить
 
alsu:
ну, в четверке такое, например, не работает))

:)

из документации по mql4 (Справочник MQL4 - Основы языка - Препроцессор - Объявление константы):

Используя конструкцию #define, можно в начале программы определить символическое имя или символическую константу, которая будет конкретной строкой символов. Впоследствии компилятор заменит все не заключенные в кавычки появления этого имени на соответствующую строку. Фактически это имя может быть заменено абсолютно произвольным текстом, не обязательно цифрами

А вот то что в четвёрке макрос __FUNCTION__ не определён (и нет аналога), эт да. Фактически это делает задачу предварительной разметки кода более нудной и менее универсальной.

 
sergeev:

Ну а если через хранение промежуточных переменных, которые будут помнить откуда пришли?
Ну а если рекурсия в программе встретится?
 
MetaDriver:
Ну а если рекурсия в программе встретится?

Рекурсия не может привести к удлинению ветки (появлению новых и новых узлов).
В крайней мере - это можно сразу предусмотреть. Но обычно рекурсий не так и часто используют, чтоб про них не знать.