Рекурсия [Почему моя система является рекурсией?] -
Makar007 - 19.10.2014
Вот код, павно считает его за рекурсию, повлияет ли это как то на сервер? И как можно избавится от варна?
Quote:
function "UpdateServerInfo" should return a value
|
PHP код:
stock UpdateServerInfo(type) {
new cmd[56];
switch(type) {
case UPDATE_ALL: {
UpdateServerInfo(UPDATE_SERVERNAME);
UpdateServerInfo(UPDATE_MODENAME);
UpdateServerInfo(UPDATE_MAPNAME);
return true;
}
case UPDATE_SERVERNAME: {
format(cmd,sizeof(cmd),"hostname %s",ServerInfo[ServerName]), SendRconCommand(cmd);
return true;
}
case UPDATE_MODENAME: {
format(cmd,sizeof(cmd),"gamemodetext %s",ServerInfo[ModeNameVersion]), SendRconCommand(cmd);
return true;
}
case UPDATE_MAPNAME: {
format(cmd,sizeof(cmd),"mapname %s",ServerInfo[ServerMapName]), SendRconCommand(cmd);
return true;
}
}
}
Re: Рекурсия [Почему моя система является рекурсией?] -
Makar007 - 19.10.2014
UPD: Ссори за тупость, перевел варн, это не рекурсия, но вопрос остается тем же, есть ли тут рекурсия? Влияет ли этот код на производительность?
Re: Рекурсия [Почему моя система является рекурсией?] -
stabker - 19.10.2014
Варн говорит о том, что функция должна возвращать значение (в конце ретурна нет). А о рекурсии подозревает из-за вызова функции изнутри самой себя.
Re: Рекурсия [Почему моя система является рекурсией?] -
Stepashka - 19.10.2014
return true; замени на
break; или перед последней скобкой поставь
return false;.
Это не рекурсия, и даже не пахнет тут ею. Не каждый вызов функцией самой себя есть рекурсия. В твоем случае меняются входные параметры, так что это не рекурсия.
Re: Рекурсия [Почему моя система является рекурсией?] -
-Stranger- - 19.10.2014
Stepashka, рекурсия, как определение, это вызов функции из неё же самой, непосредственно или через другие функции, и не важно меняются там значения или нет.
По определению у ТС рекурсивная функция...
И вообще бояться её не стоит, это неотъемлемая часть программирования... Расчёты, работа со строками,... примеров много, главное понимать что и как работает..
Re: Рекурсия [Почему моя система является рекурсией?] -
OKStyle - 20.10.2014
По идее, вызов функции CallLocalFunction должен убрать сообщение о рекурсии.
Re: Рекурсия [Почему моя система является рекурсией?] -
Stepashka - 20.10.2014
Quote:
Originally Posted by -Stranger-
Stepashka, рекурсия, как определение, это вызов функции из неё же самой, непосредственно или через другие функции, и не важно меняются там значения или нет.
По определению у ТС рекурсивная функция...
И вообще бояться её не стоит, это неотъемлемая часть программирования... Расчёты, работа со строками,... примеров много, главное понимать что и как работает..
|
Quote:
Originally Posted by OKStyle
По идее, вызов функции CallLocalFunction должен убрать сообщение о рекурсии.
|
По идее, если прочитать первый и второй пост автора, то станет ясно что павно ругается не на рекурсию, а те кто отвечает по заголовку не вникают в суть проблемы!
Re: Рекурсия [Почему моя система является рекурсией?] -
-Stranger- - 20.10.2014
Stepashka, как раз все вникают в суть вопроса, и в суть ответов на этот вопрос.
По идеи если прочитать второй пост автора, то там есть вопрос про рекурсию.
Re: Рекурсия [Почему моя система является рекурсией?] -
OKStyle - 21.10.2014
Quote:
Originally Posted by Stepashka
По идее, если прочитать первый и второй пост автора, то станет ясно что павно ругается не на рекурсию, а те кто отвечает по заголовку не вникают в суть проблемы!
|
По идее, читать нужно не только первое сообщение, а и все ответы тоже.
Re: Рекурсия [Почему моя система является рекурсией?] -
Mexanizm93 - 21.10.2014
pawno и не будет на рекурсию ругаться, за исключением расчёта потребляемой памяти из стека. Будет "unknown"