Макрос, как пользоваться? (#define)
Макрос, как пользоваться? (#define)

Для чего нужны макросы? - Макросы позволяют упрощать программу: вместо фразы можно указать её идентификатор.
Кратенько в примерах расскажу, как и где можно это юзать?

Как это устроено? - #define "название" "присваемое значение"

Пример №1:
У нас есть плагин, где стоит очень много проверок на флаг.
Мы видим везде if(get_user_flags(id) & ADMIN_RCON) и таких очень много

Вопрос:
как же упростить?

В начале исхода создаём макрос:
#define CREATOR ADMIN_RCON

То есть мы, присвоили переменной CREATOR, значение ADMIN_RCON.

Дальше мы смело можем заменить следующее:
if(get_user_flags(id) & ADMIN_RCON) на if(get_user_flags(id) & CREATOR)

В итоге мы уменьшаем время на то, что бы сменить флаг на всех имеющихся проверках!

Пример №2:
Такой же метод удобен и эффективен при использовании цикла...
Мы имеем вот такой цикл:

for(iPlayer = ; iPlayer <= 32; iPlayer++) 
{ 
код
}

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

Создаём макрос:

#define MAX_CLIENTS 32

Теперь цикл будет выглядеть вот так:

for(iPlayer = ; iPlayer <= MAX_CLIENTS; iPlayer++) 
{ 
код
}

Автор статьи - Игорь Бубенцов

Привет, наша адмнистрация публикует только пушечный контент, поставь лайк под постом ниже и напишите самый топовый комментарий, мы готовим материал только для тебя, любимый Гость.

Комментариев 3
  1. Universe
    Уже статьи пишет, дети так быстро растут
    Why i'm not from Ukraine?
    -------------------------------------------------------------------------------------------------------------------------
    Группа VK: vk.com/forumbz
    • 29 декабря 2018 21:12
  2. Mort3m
    Mort3m
    • +1
    Найс статья, дизлайк заслужила
    Ты описываешь работу с #define, где у тебя работа с директивами?
    И про то что в макрос можно записать не только целое значение и битсуммы?
    • 29 декабря 2018 21:25
    1. BuB9neC
      Это простенькая тема, о самом простом и элементарном... Если есть желание, можешь написать более подробно!
      • 30 декабря 2018 16:18
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Основа для вашей сборки
ReHLDS 3.7.0.698

ReHLDS (Reverse-engineered) - это новый шаг вперед, который дает второе дыхание нашим серверам. ReHLDS работает в 2 раза быстрей, чем HLDS.

AmxModx 5.2.7.1

AMXModX - это Metamod дополнение, которое позволяет создавать новые модификации для Half-Life на языке Pawn

Reunion 0.1.92

Reunion является продолжением Dproto для ReHLDS. Это metamod плагин, который позволяет заходить 47/48 Non-Steam на сервер.

Revoice 0.1.0.34

Revoice - это Metamod plugin, который дает возможность общения голосовым чатом между non-steam и steam клиентами.

Metamod-r 1.3.128

Новый Metamod-r содержит огромное количество оптимизаций производительности и намного более чистый код. Ядро было написано с использованием JIT-компилятора.

Ultimate Unprecacher 1.1

Ultimate Unprecacher являет плагином для MetaMod, работает он по принципу отключение не нужных ресурсов на вашем сервере, тем самым вы сможете освободить места для ресурсов под ваши плагины, с помощью данного модуля можно избавиться от ошибки 512!

ReAuthCheck 0.1.6

ReAuthCheck - это Metamod плагин, который занимается проверкой ваших игроков на валидность, с помощью данного модуля для REHLDS вы сможете защитить свой сервер от ботов, которые постоянно спамят рекламу или просто забивают слот на сервере!

NetBufExtender (NBEX) 1.0

NetBufExtender или NBEX - это метамод-плагин, который расширяет "интернет-буфер": буферы сервера и клиента(гарантия не 100%). Расширяет до 64 кб. Это значит, что у игроков уменьшается вероятность быть кикнутыми с ошибкой "Reliable channel overflowed".

UserInfoNetOptimizer (UINO) 1.0

UINO — metamod-плагин, который позволяет удалять ненужные поля из userinfo(setinfo) когда движок передаёт его другим игрокам на сервере. Данная мера уменьшает объём передаваемых данных и немного сокращает шанс быть кикнутым с "Reliable channel overflowed".

Информация

Добро пожаловать на CS-WZ.RU!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запись!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт