![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
![]() ![]() |
![]() |
Fanat |
![]()
Сообщение
#1
|
![]() Fanat ![]() ![]() ![]() Группа: Пользователи Сообщений: 261 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Есть 3 функции...1ая и вторая вызывают 3ью..можно ли как то без введения дополнительных параметров определить в 3ей функции какая функция её вызвала?..как?..
|
hardcase |
![]()
Сообщение
#2
|
![]() code warrior ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 484 Пол: Мужской Реальное имя: Славен Репутация: ![]() ![]() ![]() |
Есть 3 функции...1ая и вторая вызывают 3ью..можно ли как то без введения дополнительных параметров определить в 3ей функции какая функция её вызвала?..как?.. В управляемых средах (Java, .NET) подобный фокус возможен с помощью отражения и высокоуровневого анализа стека (реализуется в 2 строки).В Билдере такое в принципе возможно: ассемблер + перелопачивание стека. Сообщение отредактировано: hardcase - -------------------- ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
|
Fanat |
![]()
Сообщение
#3
|
![]() Fanat ![]() ![]() ![]() Группа: Пользователи Сообщений: 261 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
В Билдере такое в принципе не возможно (я имею в виду, что программа, работающая стабильно, будет написана практически на чистом ассемблере, и ей будут недоступны многие "фишки" VCL; а программа, которая будет написана на С++ - будет работать очень нестабильно)
Fanat, __FUNC__ передавай в вызываемую программу... |
Fanat |
![]()
Сообщение
#5
|
![]() Fanat ![]() ![]() ![]() Группа: Пользователи Сообщений: 261 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Это макрос такой - возвращает имя текущей функции, т.е., если сделать:
void f_3(const char *s = ""), то получишь то, что тебе нужно... Добавлено через 2 мин. Хотя можно и так: #define Call_f3 f_3(__FUNC__) ![]() |
Fanat |
![]()
Сообщение
#7
|
![]() Fanat ![]() ![]() ![]() Группа: Пользователи Сообщений: 261 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 2.10.2023 5:57 |