Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

Discussion in 'IL-2 Sturmovik (Rus)' started by Hurricane, Mar 29, 2004.

  1. -abort

    -abort Well-Known Member

    Joined:
    Jan 26, 2000
    Messages:
    313
    Location:
    Russia
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    Дынкишон! ;) Ща погляжу...
     
  2. -abort

    -abort Well-Known Member

    Joined:
    Jan 26, 2000
    Messages:
    313
    Location:
    Russia
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    Чего то я все скандалы пропустил. А sfs'ки уже вскрыли что ли? Чего там внутри? Мне читы всякие и прочая муть неинтересна, мне интересно можно ли свои модели впихнуть туда? И порипать полигоны у тех, что есть. SFS - это вроде изобретение "Aid-чего то там такое", забыл как контора звалась... Короче можете не разглашать "Великой Тайны" как распаковать, скажите только что там внутри, чтобы я успокоился и молча ждал опенсорс еще лет пять...
     
  3. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    51,449
    Location:
    Tomsk, Russia
    sepukked
     
    Last edited: Jan 30, 2013
  4. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    51,449
    Location:
    Tomsk, Russia
    sepukked
     
    Last edited: Jan 30, 2013
  5. Hurricane

    Hurricane Well-Known Member

    Joined:
    Dec 28, 2001
    Messages:
    536
    Location:
    Mагнитогорск
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    Эт те к Хрюксу надо , но по моему он грил , что со времен первого ила для него содержимое SFS-файлов не секрет.
     
  6. Smoker

    Smoker Well-Known Member

    Joined:
    Jan 30, 2003
    Messages:
    2,369
    Location:
    Russia, Magnitogorsk
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    Не Хрюксу а Alezzz'у ИМХО. :)
     
  7. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    нет, это конечно круто, перепроверять библиотечную функцию printf и убеждаться, что stdout действительно слил буфер. для полной картины паранои надо при каждом 2*2 сверяться 2.0L*2.0L с заданной точностью DBL_EPSILON - проверять верно ли процессор работает. чуть что - сразу perror() и return 1. приложить документацию, что возвращаемая единица - это кошмар.

    Bobby, если стандартные библиотеки ц глючат, то автор пакета ц сам себе буратино и с рынка он вылетит. больше мы не вспомним о том, что где-то у кого-то стандартные либы кривые были. а проверить каждый библиотечный вызов по любому невозможно, потому, что мы не знаем отработает ли либа свою собственную диагностику, и отработают ли функции управления ошибками.
     
    Last edited: Apr 5, 2004
  8. bzdems

    bzdems Well-Known Member

    Joined:
    May 3, 2001
    Messages:
    10,144
    Location:
    msk, ru
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    Это идеологически не верно если я ставлю себе цель ткнуть юзера носопыркой в мануал. А так легкая паника ему гарантирована.

    ЗЫ. В моем примере четко видна гнусная сущность автора кода, но в серых буднях программиста так мало радостных минут! ;) :cool:
     
  9. PressLuftHammer

    PressLuftHammer FH Beta Tester

    Joined:
    Mar 5, 2003
    Messages:
    13,889
    Location:
    Ekaterinburg (Russia)
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    Для того чтобы это сделать совсем не нужно записывать код в стек.
    Достаточно подменить адрес возврата заменим его скажем на адрес вызова нужной процедуры и передать ей нужные параметры.
    Запустить shell например.

    От массивов в стеке отказываться вряд ли стоит полностью, все таки есть критичные по времени места там издержки на new и getmem могут быть критичны.
     
  10. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    что за извращенцы массивы в стеках вызова функции передают - забыл спросить.
     
  11. PressLuftHammer

    PressLuftHammer FH Beta Tester

    Joined:
    Mar 5, 2003
    Messages:
    13,889
    Location:
    Ekaterinburg (Russia)
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    Выделять память в стеке сильно быстрее чем динамическую в C в стандартной билиотеке такие функции есть. Конечно по обьему ограничения сильные но зато всех накладных расходов переместить указатель стека на указаное число байт и все, и никаких поисков свободной памяти и ее пертасовок.
     
  12. hamstr

    hamstr Well-Known Member

    Joined:
    Nov 12, 2001
    Messages:
    2,919
    Location:
    Moscow, Russia
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    Никто ничего никуда не передает, стек он один на всех.
     
  13. Bobby

    Bobby Well-Known Member

    Joined:
    Oct 19, 2001
    Messages:
    8,902
    Location:
    St.-Peterburg, Russia
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    exec по поводу проверки возврата из printf() твой скептицизм связан с тем, что программы ты писал на нем только для PC, видимо. Но C есть не только на 80х86, но и на микроконтроллерах, а программы на С должны быть кроссплатформенными что бы считаться написанными правельно. Поэтому проверять возврат даже библиотечных функций надо, ибо в данном случае может просто отсутствовать устройство вывода, а программа будет ждать реакции пользователя.
    Еще раз повторю, самые серьезные ошибки, это не во время компиляции, а те которые ни один компелятор ни когда не найдет.
     
  14. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    обсуждаемая программа ввода не ждёт, как мне кажется.
    да и отсутствие устройства вывода не обозначает отсутствия устройства ввода, если что.
    если бы там вместо printf был atan(double), тогда лично я бы проверял на EDOM. а так - беспонт.
     
  15. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    51,449
    Location:
    Tomsk, Russia
    sepukked
     
    Last edited: Jan 31, 2013
  16. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    51,449
    Location:
    Tomsk, Russia
    sepukked
     
    Last edited: Jan 31, 2013
  17. -mart-

    -mart- Well-Known Member

    Joined:
    Dec 20, 2000
    Messages:
    16,496
    Location:
    Russia
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    одно скажу, ваш флейм поинтереснее чем у Отбойного Молотка с Черновым о Cx ;)
     
  18. --oleg

    --oleg Well-Known Member

    Joined:
    Dec 20, 2001
    Messages:
    4,414
    Location:
    Russia
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    Это, кстати, было весьма актуально то ли на раннем Бейсике то ли на Паскале... Не помню уже точно. Там 1.0 могло на самом деле быть 0.(9).
     
  19. hamstr

    hamstr Well-Known Member

    Joined:
    Nov 12, 2001
    Messages:
    2,919
    Location:
    Moscow, Russia
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    Это и сейчас актуально, рекомендуется не пользоваться == для типов с плавающей точкой.
     
  20. -exec-

    -exec- FH Consultant

    Joined:
    Jan 29, 2000
    Messages:
    24,690
    Location:
    xUSSR
    Re: Мега-Цирк! Как вирпилы САМИ УБИЛИ ДУХ ИГРЫ !

    здра... если ты не веришь процессору, то как ты можешь верить функции модуля числа?

    кроме того семантика выражения abs(a-2.0)<=FLT_EPSILON это совсем не то, что семантика a==2.0. увлекаясь перефразированием программы можно легко, но незаметно потерять суть. существует отдельная математика, которая рассматривает корректность перевода с языка на язык (в данном случае от алгоритма в ц), и, вообще говоря, адекватность перевода часто стоит и доказать. правда я не помню как называется эта математика.

    вот пусть твоя программа даёт решение. насколько ты уверен, что она даёт решение именно твоей задачи, а не какой-то другой произвольной (может быть похожей, а может и нет)?

    трудноотлавливаемые побочные эффекты? да, есть такая заминка, действительно.
    или дыры в алгоритме при проверке условий - выпала комбинация параметров из анализа и пошла программа по долинам и по взгорьям. а тебе её ловить. заморочки вроде abs(a-2.0)<=FLT_EPSILON ? 1 : 0 - это прямой путь наплодить новых дыр в логике.

    вот хотя бы взять int a. вероятность неуправляемой смены значения целочисленной переменной несравненно ниже чем те же ошибки точности преобразования (float)a. ищи-свищи потом куда тебя ифы заведут. а, спрашивается, зачем было рисковать пихать преобразование типа? надо было линейно взять a == 2L и не морочить никому голову.