PDA

Просмотр полной версии : [Вопрос] Дополнительный параметр по ссылке



Glant
19.11.2016, 22:54
К примеру, есть функция:



stock myFunc(p1, &p2)
{
p2 = 1;
}


Как можно ловко избежать использования второго параметра при вызове, не создавая для этого переменную?

Вызов функции:


new myVar; // не создавая его

myFunc(5, myVar);

DeimoS
19.11.2016, 23:01
stock myFunc(p1, &p2 = 1)
{
p1 = 1;
}


myFunc(p1, _);

Glant
19.11.2016, 23:08
stock myFunc(p1, &p2 = 1)
{
p1 = 1;
}


myFunc(p1, _);

error 059: function argument may not have a default value

Daniel_Cortez
19.11.2016, 23:12
stock myFunc(p1, &p2 = 1)
{
p1 = 1;
}
Почти так, но только значением по умолчанию должно быть число, обозначающее неправильный адрес в секции данных - cellmin, например.
Проверку на пропуск параметра тогда следует делать с помощью #emit.


stock myFunc(p1, &p2 = cellmin)
{
new bool:p2_skipped;
#emit load.s.pri p2
#emit eq.c.pri cellmin
#emit stor.s.pri p2_skipped
if (false == p2_skipped)
p2 = 42;
}