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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2011, 00:08   #11
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Как я уже сказал, они не безопасны.
Они пережиток прошлого.

Как пример:
Код:
label Rep;

var
 i:integer;
begin
  i:=0;
Goto rep;
           rep: 
             i:=i+1;
             If not (i=1000) then
            Goto Rep; 
end;
Мне очень сильно напоминает:
Код:
var
   i:integer;
begin
  i:=1;
  repeat
  i:=i+1;
  until (i=1000);
end;
И какой смысл от них? Портят код, Терячется всяческое понимание того, что твориться на данный момент в коде. Да и
Цитата:
Никогда не используйте его для перехода в или из блока Try, а также в циклах или операторах выбора.
Вообще заставляет вешаться т.к. свободы использования нет вообще.

Думаю они остались от assembler'а. Или спец. для него и зарезервированы. Но мне кажется даже там есть свой способ обьявления меток.

Последний раз редактировалось Человек_Борща; 01.10.2011 в 00:11.
Человек_Борща вне форума Ответить с цитированием
Старый 01.10.2011, 17:28   #12
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Я предлагаю ТС'у выложить задачу, пред которой он стоит, а мы поможем написать код , и без меток.

Не буду ничего говорить про надо ли их использовать или не надо, скажу лишь, что я не использую их почти никогда, кроме совсем уж редких случаев, когда не городить хочется, а втиснуть 1-2 вполне логичных в данном месте метки, вот пример (из Интакт, игры моей, сокращенный):
Код:
{here we cast a single spell}
multicast:
          case ...{spell} of
            siheal : ...
            siarrow : ...{and so on}            
            end; // case spell          
          if ...{multi-spell}
            then begin            
            for i := 0 to fieldheight
              do for j := 0 to fieldwidth
                do if ...[ i, j] {cast spell in a field-cell}
                  then begin
                  ...
                  goto multicast ; {just replay singlespell-code}
                  end;
            ...
            end;
знаю что надо рефакторить )) но пока писал всё то что есть, порядком и устал и запутал , и сейчас уже время не то, так что, пока оно работает, ничуть не запутывает код (для меня, так как я единственный разработчик)

Последний раз редактировалось phomm; 01.10.2011 в 17:32.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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