VVWVV
24.12.2016, 13:30
Описание:
Вычисляет количество аргументов в функции.
Параметры:
-
Возвращаемое значение:
Возвращает количество аргументов в функции.
Плюсы реализации:
Быстрое вычисление количества аргументов. Таким образом, это функция быстрее numargs с JIT в 3 раза, а без него в 2 раза.
Минусы реализации:
N/A
Код:
stock
GetNumberOfArguments()
{
#emit load.s.pri 0x0 // узнаем FRM прежней функции.
#emit add.c 0x8 // смещение на 8 байт.
#emit load.i // читаем.
#emit shr.c.pri 2 // побитовый сдвиг в право - деление на 4
#emit retn // возвращаем.
return 0;
}
Пример использования:
main()
{
printf("Arguments: %d", GetNumberOfArguments());
SomeFunction(1, 3, 4, 5);
}
stock
SomeFunction(...)
{
printf("Arguments: %d", GetNumberOfArguments());
}
См. также:
[Function] Чистим массив игрока (http://pro-pawn.ru/showthread.php?7931)
[Function] Защита от DeAMX (new) (http://pro-pawn.ru/showthread.php?8277)
[Function] ClearKillFeed (http://pro-pawn.ru/showthread.php?12295)
[Function] dc_SleepFix (http://pro-pawn.ru/showthread.php?13188)
[Function] GetStackSize (http://pro-pawn.ru/showthread.php?10824)
[Function] itos (http://pro-pawn.ru/showthread.php?3243)
Автор: VVWVV
Исключительно для pro-pawn.ru
Копирование данной статьи на других ресурсах без разрешения автора запрещено.
Вычисляет количество аргументов в функции.
Параметры:
-
Возвращаемое значение:
Возвращает количество аргументов в функции.
Плюсы реализации:
Быстрое вычисление количества аргументов. Таким образом, это функция быстрее numargs с JIT в 3 раза, а без него в 2 раза.
Минусы реализации:
N/A
Код:
stock
GetNumberOfArguments()
{
#emit load.s.pri 0x0 // узнаем FRM прежней функции.
#emit add.c 0x8 // смещение на 8 байт.
#emit load.i // читаем.
#emit shr.c.pri 2 // побитовый сдвиг в право - деление на 4
#emit retn // возвращаем.
return 0;
}
Пример использования:
main()
{
printf("Arguments: %d", GetNumberOfArguments());
SomeFunction(1, 3, 4, 5);
}
stock
SomeFunction(...)
{
printf("Arguments: %d", GetNumberOfArguments());
}
См. также:
[Function] Чистим массив игрока (http://pro-pawn.ru/showthread.php?7931)
[Function] Защита от DeAMX (new) (http://pro-pawn.ru/showthread.php?8277)
[Function] ClearKillFeed (http://pro-pawn.ru/showthread.php?12295)
[Function] dc_SleepFix (http://pro-pawn.ru/showthread.php?13188)
[Function] GetStackSize (http://pro-pawn.ru/showthread.php?10824)
[Function] itos (http://pro-pawn.ru/showthread.php?3243)
Автор: VVWVV
Исключительно для pro-pawn.ru
Копирование данной статьи на других ресурсах без разрешения автора запрещено.