Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2011, 20:23   #1
ramzes777
Пользователь
 
Регистрация: 15.09.2011
Сообщений: 92
По умолчанию Обьявление метки

Как обьявить метку чтобы можно было прыгать из одной процедуры в другую?
При обьявлении над var над implementation выдает ошибку что там обьявлять метки нельзя.
ramzes777 вне форума Ответить с цитированием
Старый 30.09.2011, 20:25   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Не используйте ни label ни goto. Они не безопасны.
Человек_Борща вне форума Ответить с цитированием
Старый 30.09.2011, 20:32   #3
ramzes777
Пользователь
 
Регистрация: 15.09.2011
Сообщений: 92
По умолчанию

Чем не безопасны? Что тогда использовать эквивалентно лейблу?
П.С. Блин, просто крутой ник! ;D
ramzes777 вне форума Ответить с цитированием
Старый 30.09.2011, 20:47   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

http://www.delphibasics.ru/Goto.php
Человек_Борща вне форума Ответить с цитированием
Старый 30.09.2011, 20:54   #5
Silver_S
Форумчанин
 
Регистрация: 14.03.2011
Сообщений: 104
По умолчанию

Прыгать из одной процедуры в другую с помощью меток не получится
Silver_S вне форума Ответить с цитированием
Старый 30.09.2011, 21:43   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Прыгать из одной процедуры в другую с помощью меток не получится
и слава Богу!!!

Цитата:
Чем не безопасны? Что тогда использовать эквивалентно лейблу?
тем, что Вы (как программист) теряете представление о том, как выполняется Ваш код. Кроме того, в 99% случаев попытка использовать метку - это сигнал о том, что Вы плохо продумали алгоритм или структуру Вашей программы. Например, в вашем случае зачем Вам передавать управление в другую процедуру? Вы же можете вызвать из одной процедуры другую. Хотите влиять на ход выполнения - добавьте параметр(ы). в зависимости от этих параметров делайте ветления в вызванной процедуре. В двух процедурах есть общий участок кода? Выносите его в отдельную процедуру и вызывайте и из одной процедуры и из другой... и так далее...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.09.2011, 21:49   #7
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Как обьявить метку чтобы можно было прыгать из одной процедуры в другую?
Как ты себе это представляешь?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 30.09.2011, 22:34   #8
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Если уж на пошло, то объясняю. Метки описываются в разделе Label. Например:

Код:
var i,j,k: integer; // Это объявляются переменные
Label La1, La2; // Это объявляются метки
begin
La1:

   goto La1;
end;
Однако их использования не просто необязательно, но и большинстве случаев НЕБЕЗОПАСНО.
Ладно, если метка одна, но если их кучи - то программу становится неудобно читать человеку, а при написании кода программы велика вероятность случайно сделать так, что программа зациклится, как это сделано в примере, показанном выше.
Вадим Мошев вне форума Ответить с цитированием
Старый 30.09.2011, 23:25   #9
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Не используйте ни label ни goto. Они не безопасны.
Метки безопасны, опасные обычно программисты и тут уже нет разницы, что он использует циклы, метки и тд.

Ничего страшного в метках не вижу, на ассемблере программируют и все ок.
Допустим, работать с указателями тоже не безопасно, и что не работать с ними?
Поэтому, если человек надумал использовать метки то наверное есть причины.
ramzes777, пиши, но будь осторожен)
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 01.10.2011, 00:01   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Ничего страшного в метках не вижу, на ассемблере программируют и все ок.
Допустим, работать с указателями тоже не безопасно, и что не работать с ними?
Поэтому, если человек надумал использовать метки то наверное есть причины.
ramzes777, пиши, но будь осторожен)
В Ассемблере, кроме меток и операторов перехода, других способов нет изменить порядок программы.
Но если уж на то пошло, то почему не пишем мы на машинных кодах программы? Ведь это не они медленные, а человек медленно пишет.
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обьявление переменной в var AlexDn Общие вопросы Delphi 25 23.08.2011 16:42
free и метки YourLastSong Общие вопросы C/C++ 6 29.12.2010 22:25
Обьявление глобальной функции Scorpeon Общие вопросы Delphi 3 22.04.2010 11:11
Обьявление массива bondik Общие вопросы C/C++ 1 31.03.2009 19:09
обьявление классов пыхонин филипп Помощь студентам 1 21.03.2009 20:10