Доброго времени суток. Всем известно, что популярная среда разработки (в определённых кругах 😉 ) Pawno использует компилятор PawnC. В этом уроке я рассказу Вам о его директивах.

[b]#include[/b]
Начнём с самого простого — подключение инклуда. Для того, чтобы впихнуть код из /gamemodes/include.inc в /gamemodes/mode.pwn мы напишем:
[code]#include «include»[/code]
А если из /pawno/includes, то:
[code]#include [/code]
По-русски говоря, чтобы вставить содержимое инклуда из папки с компилируемым файлом (например, программа /compile/programm.pwn и инклуд /compile/ImportMePls.inc) мы указываем название файла в кавычках (#include «ImportMePls»), а если инклуд в /pawno/include, то в стрелках (#include . Ах, да! Совсем забыл сказать. Расширение инклуда не обязательно должно быть .inc, но в таком случае нужно указать полное название файла: #include .

[b]#define[/b]
Теперь о #define. Переведя её название на русский, мы получим #определить. Можно сказать, это #замени ТЕКСТ1 на ТЕКСТ2. Таким образом:
[code]#define ahahaha looool[/code]
Компилятор заменит в коде все ahahaha на looool. То есть:
[code]#define write printf
main() {
write(«test»);
}[/code]

Скомпилируется также, как и:
[code]main() {
printf(«test»);
}[/code]

[b]#ifdef — #else — #endif[/b]
Это условия компилятора.
[code]#define test
main() {
#ifdef test
printf(«test defined!»);
#else
printf(«test undefined!»);
#endif
}[/code]

Переведя на русский, условие звучит так: «Если test определена, то выведи «text defined!», в противном случае — «text undefined!». Скомпилируется это всё как:
[code]main() {
printf(«test defined!»);
}[/code]

Если мы уберём #define test, то скомпилируется код:
[code]main() {
printf(«test undefined!»);
}[/code]

[b]#ifndef — #else — #endif[/b]
#ifndef по своему действию противоположна #ifdef.

[b]#pragma[/b]
Позволяет прятать предупреждения. Например,
[code]#pragma tabsize 4[/code]
Не даст вылезти warning 017, если размер табуляции = 4. А
[code]#pragma unused test[/code]
Не даст вылезти предупреждению «symbol «test» is never used», даже если переменная test нигде не используется.

От danilasar

Это я

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *