[b]#include
Начнём с самого простого — подключение инклуда. Для того, чтобы впихнуть код из /gamemodes/include.inc в /gamemodes/mode.pwn мы напишем:
[code]#include «include»
А если из /pawno/includes, то:
[code]#include
По-русски говоря, чтобы вставить содержимое инклуда из папки с компилируемым файлом (например, программа /compile/programm.pwn и инклуд /compile/ImportMePls.inc) мы указываем название файла в кавычках (#include «ImportMePls»), а если инклуд в /pawno/include, то в стрелках (#include
[b]#define
Теперь о #define. Переведя её название на русский, мы получим #определить. Можно сказать, это #замени ТЕКСТ1 на ТЕКСТ2. Таким образом:
[code]#define ahahaha looool
Компилятор заменит в коде все ahahaha на looool. То есть:
[code]#define write printf
main() {
write(«test»);
}
Скомпилируется также, как и:
[code]main() {
printf(«test»);
}
[b]#ifdef — #else — #endif
Это условия компилятора.
[code]#define test
main() {
#ifdef test
printf(«test defined!»);
#else
printf(«test undefined!»);
#endif
}
Переведя на русский, условие звучит так: «Если test определена, то выведи «text defined!», в противном случае — «text undefined!». Скомпилируется это всё как:
[code]main() {
printf(«test defined!»);
}
Если мы уберём #define test, то скомпилируется код:
[code]main() {
printf(«test undefined!»);
}
[b]#ifndef — #else — #endif
#ifndef по своему действию противоположна #ifdef.
[b]#pragma
Позволяет прятать предупреждения. Например,
[code]#pragma tabsize 4
Не даст вылезти warning 017, если размер табуляции = 4. А
[code]#pragma unused test
Не даст вылезти предупреждению «symbol «test» is never used», даже если переменная test нигде не используется.