Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 18 из 18
  1. #11
    Аватар для Тузик
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.06.2016
    Сообщений
    26
    Репутация:
    0 ±
    Думаю различие в оптимизации мало, а может вовсе нет, но при использовании уже данного значения разве нужно ли подсчитывать, когда на это уходит хотя бы 0.0001 ms? :)

    - - - Добавлено - - -

    Цитата Сообщение от ziggi Посмотреть сообщение
    Согласен, поправил.
    Как я понял strins вы использовали как преобразователь в красивую цветовую гамму? xD

    (Да, был прав. Не проверял до этого.) Однако могу вам сообщить, что имея имя Tuzyk и при поиске Tuzykss (к примеру) высвечивает без вашего цвета имя Tuzyk :)
    Последний раз редактировалось Тузик; 27.11.2016 в 10:25.
    Телеграфируем в соц.сети "вконтакте" или же мылимся на веревке "VKontakte"?

  2. #12
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    И чем это лучше? Тем, что обманываете GetPlayerName с размером string?
    Если я правильно прочитал исходники amx/samp, то меньше символов будет копироваться.

    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    UPD: Макрос COMMAND_ID_MAX_MATCHES следует убрать (#undef) либо после выражения со sscanf, либо в конце функции, чтобы не было конфликтов при аналогичном использовании этого макроса в других функциях.
    Поправил.

  3. #13
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Если я правильно прочитал исходники amx/samp, то меньше символов будет копироваться.
    Т.е., по твоему, если указать размер буфера больше MAX_PLAYER_NAME (например, 30), то кроме никнейма скопируется ещё несколько следующих байт памяти? Как ты это вообще представляешь? Нет, я знаю, что в SA-MP до сих пор много багов, но не настолько же, чтобы была криво сделана каждая N-я операция копирования.

    Указание размера буфера в строковых функциях - как стандартных, так и из SA-MP - нужно только чтобы избежать записи за его пределы. Если указать размер буфера отличный от фактического, никакой оптимизации из этого не будет - только побочные эффекты: неполное копирование строки или выход за пределы буфера.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  4. Пользователь сказал cпасибо:
    VVWVV (27.11.2016)
  5. #14
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Т.е., по твоему, если указать размер буфера больше MAX_PLAYER_NAME (например, 30), то кроме никнейма скопируется ещё несколько следующих байт памяти? Как ты это вообще представляешь? Нет, я знаю, что в SA-MP до сих пор много багов, но не настолько же, чтобы была криво сделана каждая N-я операция копирования.

    Указание размера буфера в строковых функциях - как стандартных, так и из SA-MP - нужно только чтобы избежать записи за его пределы. Если указать размер буфера отличный от фактического, никакой оптимизации из этого не будет - только побочные эффекты: неполное копирование строки или выход за пределы буфера.
    И правда, я неправильно прочитал это:
    PHP код:
    while (max--&&*source)
      *
    dest++=(cell)*source++; 

  6. #15
    Аватар для Тузик
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.06.2016
    Сообщений
    26
    Репутация:
    0 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Т.е., по твоему, если указать размер буфера больше MAX_PLAYER_NAME (например, 30), то кроме никнейма скопируется ещё несколько следующих байт памяти? Как ты это вообще представляешь? Нет, я знаю, что в SA-MP до сих пор много багов, но не настолько же, чтобы была криво сделана каждая N-я операция копирования.

    Указание размера буфера в строковых функциях - как стандартных, так и из SA-MP - нужно только чтобы избежать записи за его пределы. Если указать размер буфера отличный от фактического, никакой оптимизации из этого не будет - только побочные эффекты: неполное копирование строки или выход за пределы буфера.
    То есть, по-вашему, в этом случае лучше использовать подсчет строк, нежели заведомо неизменяемое (константу)?
    Телеграфируем в соц.сети "вконтакте" или же мылимся на веревке "VKontakte"?

  7. #16
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2590 ±
    Цитата Сообщение от Тузик Посмотреть сообщение
    То есть, по-вашему, в этом случае лучше использовать подсчет строк, нежели заведомо неизменяемое (константу)?
    "Поодсчёт строк"? О чём вы?
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  8. #17
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Тузик Посмотреть сообщение
    То есть, по-вашему, в этом случае лучше использовать подсчет строк, нежели заведомо неизменяемое (константу)?
    Он имеет ввиду то, что если ты в GetPlayerName (да и любой другой функции, где есть параметр длинны входящей строки) вместо "sizeof(string)", которая равна, например, 200, укажешь "MAX_PLAYER_NAME", которая равна 24-рём, ничего существенного не измениться, ибо в GetPlayerName всё так же попадёт массив string, размером в 200 ячеек.
    А вот если указать MAX_PLAYER_NAME, а массив потом, например, на 15 ячеек изменить, то можно схлопотать обращение к несуществующей ячейке с такой "оптимизацией"
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. #18
    Аватар для Тузик
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.06.2016
    Сообщений
    26
    Репутация:
    0 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    "Поодсчёт строк"? О чём вы?
    Неверно выразился, подсчет ячеек.
    Ладно, пожалуй лучше закончить спор, понял что лучше использовать подсчет, чем заведомо данное и неизменяемое значение :с
    Телеграфируем в соц.сети "вконтакте" или же мылимся на веревке "VKontakte"?

 

 
Страница 2 из 2 ПерваяПервая 1 2

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •