shape1
shape2
shape3
shape4
shape7
shape8

Директивы


Prushkin

Новичок
Пользователь
23.06.2016
12
3
0
Скриптер
 В общем случае директива – это указание компилятору языка С++ выполнить то или иное действие в момент компиляции программы. Существует строго определенный набор возможных директив, который включает в себя следующие определения: 

Директива - это указание компилятору для выполнения действия при компиляции. Есть несколько наборов директив:

#define - заменяет себя на значение

Пример:

#define SCM SendClientMessage

#if, #else, #elseif, #endif 

Нужны для настройки скрипта и исключения некоторых частей кода.

Пример:

#define test

public OnPlayerConnect(playerid)
{
#if defined test
printf("test существует!");
#else
printf("test не существует!");
#endif
}

#include

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

Пример:

#include <a_samp>//подключили a_samp.ini

#error

При компиляции выдает ошибку.

Пример:

#if !defined test // если test не существует
#error test netu! //Выведет ошибку"error:test netu"
#endif

#undef

Удалит дефайн(директиву).

Пример:

#define test//создаем
#undef test//удаляем

#tryinclude 

То же самое,что и #include,но если файла не существует,то просто пропускает его и не выводит ошибку.

Пример:

#tryinclude <test>
#emit

Для того,чтобы найти информацию по этой функции пришлось покопаться по англоязычным форумам SA:MP.Данная функция обращается к компилятору с помощью языка  Assambler.

Пример:

new test1 = 1,test2 = 2, test3 = 3;

public OnGameModeInit()
{
#emit LOAD test1
#emit LOAD.test2
#emit LOAD.test3
print("__________________")
return 1;
}

(Автор:Armn)

#pragma unused

Отключает предупреждение,о неиспользуемой переменной.

Пример:

new perem;
#pragma unused perem; 
#pragma dynamic

Увеличение памяти скрипта.

Пример:

#pragma dynamic 10000

#endinput

Делает следующий код комментарием.

Пример:

//Ваш код
#endinput

Это не код

#assert

Лимитирует значение.

Пример:

#define def 21
#assert => 10

Авторы описаний не известны.

 
Последнее редактирование модератором: