![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Curiosa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.5.2009 Репутация: нет Всего: нет |
Есть ли такие, как их объявлять?
|
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 24 Всего: 69 |
а локальные метки есть?
|
|||
|
||||
GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 15 Всего: 26 |
глобальных нету - только внутри функции
используй пустую функцию как глобальную метку ;) (с умом используй) |
|||
|
||||
Curiosa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.5.2009 Репутация: нет Всего: нет |
Если я использую функцию, то после "пророботки" она вернется в точку вызова, а мне нужно в main ;)
|
|||
|
||||
djamshud |
|
|||
![]() Пердупержденный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 23.11.2009 Репутация: 8 Всего: 39 |
Curiosa, после проработки кидайте особое исключение и ловите его в main. Но вообще странное желение какое-то).
Еще есть сишный longjmp: http://www.opennet.ru/man.shtml?topic=long...DA%C1%D4%D8+man Вот только в одних источниках говорится, что он соответствует аж стандарту C89, а в других - только POSIX. Кому верить, не знаю. Добавлено через 2 минуты и 4 секунды Так же у longjmp под большим вопросом (в случае использования с++), нормально ли переживут такой скачок многие из объектов. -------------------- 'Cuz I never walk away from what I know is right Alice Cooper - Freedom |
|||
|
||||
Alek86 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
если очень надо, для этого можно использовать исключения
но уверен, что ты просто неправильно решаешь задачу |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
Curiosa, глобальных меток нет и тому есть несколько причин:
1. Переход на адрес внутри другой функции не является корректным, т.к. стек отражает состояние текущей функции. в стеке адреса возвратов и локальные переменные. 2. В языке имеется достаточно других средств управления ходом программы. 3. Желание прыгнуть за пределы функции чаще всего говорит о неправильном проектировании алгоритма и вносит в проект лишние сильные связи. Иными словами, немного подумав и изменив алгоритм, получим более простую, ясную и логичную программу. Есть, как уже сказали, два способа изменить ход программы, передав управление в иную функцию - setjmp\longjmp и исключения. Первое вполне справляется с установкой указателя стека, но объекты при этом не разрушаются корректным образом. Второе (исключения) аккуратно вызывает деструкторы всех локальных объектов, хранящихся в стеке. Так что технически возможно, практически - скорее всего неправильно. Задачу в студию, подумаем, подскажем. |
|||
|
||||
Curiosa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.5.2009 Репутация: нет Всего: нет |
Задача: поиск в глубину. Проблема возникла из-за рекурсии. Т.е там где управление должно было переходить в main, осуществлялось углубление. Сделала так: поставила флаг на выход) Спасибо за ответы
![]() |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
Что-то в этом роде. Метки не нужны. Это сообщение отредактировал(а) baldina - 16.1.2010, 00:01 |
|||
|
||||
Curiosa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.5.2009 Репутация: нет Всего: нет |
||||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
с циклами Вам потребуется помечать вершины - пройдена или нет.
посмотрите http://ru.wikipedia.org/wiki/Поиск_в_глубину здесь алгоритм в общем виде, с рекурсией и без меток |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |