Вопросы

#define ShowPlayerInventory(%0)         ShowPlayerDialog(%0, 5300, DIALOG_STYLE_LIST, "тут типа текст", "Выбрать", "Отмена")

или

stock ShowPlayerHouseMenu(playerid)
{
    #define ShowPlayerInventory(%0)         ShowPlayerDialog(%0, 5300, DIALOG_STYLE_LIST, "тут типа текст", "Выбрать", "Отмена")
    return 1;
}

Оно используется одинаково, хотелось бы знать какой вариант будет лучше по оптимизации.

Поделиться сообщением


Ссылка на сообщение

4 ответа на этот вопрос

  • 0

По оптимизации примерно без разницы, если дело именно выиграть спор, то вариант с #define отработает за N ед. времени, вариант с stock отработает за M ед. времени.

В результате M должен быть больше чем N (при прочих равных), т.е. номинально вариант со stock медленнее, на практике без разницы. 

Поделиться сообщением


Ссылка на сообщение
  • 0

@f0295655, может быть Вы имели в виду это?
 

stock ShowPlayerInventory(playerid)
{
    ShowPlayerDialog(playerid, 5300, DIALOG_STYLE_LIST, "тут типа текст", "Выбрать", "Отмена")
    return 1;
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Jawn Ой, да, перепутал когда писал тему ._.

Поделиться сообщением


Ссылка на сообщение
  • 0

Ответ на Ваш вопрос уже дали. Но хотел бы уточнить, что на практике не стоит гнаться за оптимизацией так. Я бы использовал второй вариант. И думаю, что большинство поступит именно так.

  1. Не будет никаких проблем, связанных с тем, что вы используете макрос до того, как объявили его.
  2. При использовании макроса строка "тут типа текст" каждый раз будет подставляться препроцессором в нужные участки кода, а затем помещаться в память (то есть в памяти обнаружится большое количество одинаковых строк). При использовании функции строка лишь единожды попадет в память.
  3. Вызов функции действительно отнимает некоторые доли секунды, но эти доли настолько малы и ничтожны... Вы можете измерить время самостоятельно и убедиться, что время вызова даже миллиона таких функций ничтожно мало.
  4. В функции вы получаете возможность управлять передаваемыми данными (добавлять при необходимости проверки) и результирующими данными (возвращать нужные вам значения, которыми затем оперировать).

Есть диалоговый процессор mdialog. В нем реализована как раз эта идея. Присмотритесь, возможно, Вам это понравится.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Jordan_Mikaelson
      От Jordan_Mikaelson
      Приветсвую дорогие участники нашего форума, хочу пригласить вас на наш РП проект под названием Onweys RP

      Проект находиться на стадии разработки!
      Наша главная цель сделать наш рп проект приемлевым для игроков 
      От вас хорошая активность, доброта на сервере, от нас понимание, хорошая администрация, улучшения и т.д

      В наши планы входит: сохранить атмосферу и карту КРМП, создать РП фракции работы и прочее, так же качественно отделить Администрацию от РП жизни на сервере

      Оставляю вам ссылку на проект там будут новости с проекта, + общение с будущими игроками

      Так же у нас открыты заявки на тестеров
      + разрабатываеться версия на телефоны)

      Ждем вас на нашем проекте дорогие друзья! 
      https://t.me/+KMYu4wsZLCo2MDc8
    • Zelixsz
      От Zelixsz
      Привет, при попытке запустить сервер появляется такая ошибка. 
      Буду благодарен за любую помощь 
       
      MySQL: подключаюсь к localhost (Логин: root | БД: adamandrp) MySQL: не удалось подключиться к localhost  
    • gooding
      От gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP