Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Found
    G

    Статус
    Оффлайн
    Регистрация
    18.05.2016
    Адрес
    041b0438043f04
    Сообщений
    35
    Репутация:
    9 ±

    Упакованные строки

    Здравствуйте. Недавно, при прочтении одной темы от Daniel_Cortez, я наткнулся на очень интересный участок кода. К сожалению, толковой информации я не нашёл, поэтому я прошу вас, пожалуйста, объяснить в чём смысл упакованных строк.

    Код:
    new const vehicle_models_names[611 - 399 + 1][] =
    {
        /*   0 */ {!"No vehicle"},    // Для случаев, когда (model == 0), т.е. когда игрок не в машине.
        /* 400 */ {!"Landstalker"},    // Также обратите внимание, что строки с названиями упакованные.
        /* 401 */ {!"Bravura"},
        /* ... */
        /* 611 */ {!"Utility Trailer"}
    }
    
    stock GetVehicleModelName(model, name, size = sizeof(name))
    {
        // Если номер модели неизвестен (в т.ч. нулевой)...
        if (model < 400 || 611 < model)
            return strunpack(name, vehicle_models_names[0], size);
        // Модели #400 соответствует название в vehicle_models_names[1], а не [0],
        // поэтому следует прибавить 1 к индексу.
        return strunpack(name, vehicle_models_names[model - 400 + 1], size);
    }
    За ранее благодарю за ответ.

  2. #2
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Меньше места занимает в памяти.

  3. #3
    Аватар для Found
    G

    Статус
    Оффлайн
    Регистрация
    18.05.2016
    Адрес
    041b0438043f04
    Сообщений
    35
    Репутация:
    9 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Меньше места занимает в памяти.
    Есть ли какие-то ограничения, либо же минусы?

  4. #4
    Аватар для VVWVV
    ?

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Минус один: не все функции поддерживают упакованные строки. Есть, конечно, ограничение, но это уже связано с ASM.

  5. #5
    Аватар для Found
    G

    Статус
    Оффлайн
    Регистрация
    18.05.2016
    Адрес
    041b0438043f04
    Сообщений
    35
    Репутация:
    9 ±
    В целом всё понятно.

    Тему можно закрыть.

 

 

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

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

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

Ваши права

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