PDA

Просмотр полной версии : [Вопрос] Переподключение INC (инклюдов)



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

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


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

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


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

По-хорошему, следовало бы уточнить, что название макроса в защите от повторного подключения (include guard) зависит от имени файла (в данном случае a_samp.inc) - а то ещё получится, что ТС станет писать "a_samp_included" во всех своих инклудах.

Elrmrnt-Kritik
25.03.2018, 14:27
Да вот я как раз-таки и хотел придумать что-нибудь, чтобы не прописывать эту защиту от переподключения. Надоело уже писать во всех файлах это))

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

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

Лучше писать её всегда.

Elrmrnt-Kritik
15.06.2018, 01:23
Спасибо, тему можно закрыть.