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

    Статус
    Оффлайн
    Регистрация
    05.11.2017
    Сообщений
    136
    Репутация:
    10 ±

    Переподключение INC (инклюдов)

    Доброе время суток. Скажите пожалуйста, баг с переподключением INC присутствует исключительно в стандартном pawno, либо в других он тоже существует? Я сижу на PawnVSCode и Notepad++. Стоит ли проверять, пользуясь этими компиляторами, не подключен ли inc дважды?

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

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Стандартный компилятор Pawn автоматически генерирует защиту от повторного подключения файов. Тем не менее в версии от Zeex данная фича была выключена по умолчанию (включить её можно, используя флаг -Z). Поэтому вам необходимо использовать file guards, которые позволяют включить содержимое файла только лишь один раз.

    1. #if defined a_samp_included
    2. #endinput
    3. #endif
    4. #define a_samp_included
    5. // Содержимое файла.

  3. Пользователь сказал cпасибо:
    Elrmrnt-Kritik (25.03.2018)
  4. #3
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Цитата Сообщение от VVWVV Посмотреть сообщение
    Стандартный компилятор Pawn автоматически генерирует защиту от повторного подключения файов. Тем не менее в версии от Zeex данная фича была выключена по умолчанию (включить её можно, используя флаг -Z). Поэтому вам необходимо использовать file guards, которые позволяют включить содержимое файла только лишь один раз.

    1. #if defined a_samp_included
    2. #endinput
    3. #endif
    4. #define a_samp_included
    5. // Содержимое файла.
    По-хорошему, следовало бы уточнить, что название макроса в защите от повторного подключения (include guard) зависит от имени файла (в данном случае a_samp.inc) - а то ещё получится, что ТС станет писать "a_samp_included" во всех своих инклудах.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. Пользователь сказал cпасибо:
    Elrmrnt-Kritik (25.03.2018)
  6. #4
    Аватар для Elrmrnt-Kritik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.11.2017
    Сообщений
    136
    Репутация:
    10 ±
    Да вот я как раз-таки и хотел придумать что-нибудь, чтобы не прописывать эту защиту от переподключения. Надоело уже писать во всех файлах это))

    То есть эту защиту необходимо писать во всех INC, если я использую не стандартный компилятор?

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

    Статус
    Оффлайн
    Регистрация
    09.07.2015
    Сообщений
    731
    Репутация:
    353 ±
    Цитата Сообщение от Elrmrnt-Kritik Посмотреть сообщение
    То есть эту защиту необходимо писать во всех INC, если я использую не стандартный компилятор?
    Лучше писать её всегда.

  8. Пользователь сказал cпасибо:
    Elrmrnt-Kritik (25.03.2018)
  9. #6
    Аватар для Elrmrnt-Kritik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.11.2017
    Сообщений
    136
    Репутация:
    10 ±
    Спасибо, тему можно закрыть.

 

 

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

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

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

Ваши права

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