SA-MP Forums Archive
Возврат текста в return - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Возврат текста в return (/showthread.php?tid=648046)



Возврат текста в return - Josipo - 14.01.2018

Во многих советах по оптимизации пишут, что не нужно возвращать текст в return.
А как правильно надо делать? Чем это плохо и почему?

stock GetMessage(type) {
new text[6];

switch(type) {
case 1: text = "text1";
case 2: text = "text2";
}

return text;
}


Пример выше - это плохой код? Покажите альтерантиву


Re: Возврат текста в return - stabker - 14.01.2018

PHP Code:
stock GetMessage(typetext[], size sizeof(text)) {
switch(
type) {
case 
1strmid(text"text1"04size);
case 
2strmid(text"text1"04size);
}




Re: Возврат текста в return - Mcc - 14.01.2018

Quote:
Originally Posted by stabker
View Post
PHP Code:
stock GetMessage(typetext[], size sizeof(text)) {
switch(
type) {
case 
1strmid(text"text1"04size);
case 
2strmid(text"text1"04size);
}

А в чем здесь прикол strmid?


Re: Возврат текста в return - ZiGGi - 14.01.2018

А почему лучше это не возвращать: http://pro-pawn.ru/showthread.php?10730
Основная проблема в том, что здесь нет проверки на размер строки, а это не безопасно.
Ну это ещё стек жрёт, но, как по мне, это не особо важно.

Я думаю, лучше сделать через strcat.
PHP Code:
stock GetMessage(typetext[], size sizeof(text)) {
    
text[0] = '\0';
    switch (
type) {
        case 
1strcat(text"text1"size);
        case 
2strcat(text"text2"size);
    }




Re: Возврат текста в return - Mutha_X - 14.01.2018

Quote:
Originally Posted by Josipo
View Post
Во многих советах по оптимизации пишут, что не нужно возвращать текст в return.
А как правильно надо делать? Чем это плохо и почему?

stock GetMessage(type) {
new text[6];

switch(type) {
case 1: text = "text1";
case 2: text = "text2";
}

return text;
}


Пример выше - это плохой код? Покажите альтерантиву
Осторожно, шутка.
PHP Code:
stock GetMessage(typetext[], size sizeof(text)) {
    
text[0] = 0x74786574;
    if(
size>1)
        
text[1]='0'+type;




Re: Возврат текста в return - stabker - 14.01.2018

Quote:
Originally Posted by Mcc
View Post
А в чем здесь прикол strmid?
А что надо было?


Re: Возврат текста в return - Mcc - 14.01.2018

Quote:
Originally Posted by stabker
View Post
А что надо было?
text = "text" не?


Re: Возврат текста в return - stabker - 14.01.2018

Quote:
Originally Posted by Mcc
View Post
text = "text" не?
Размер массива-то динамический, это невозможно


Re: Возврат текста в return - Mcc - 15.01.2018

Quote:
Originally Posted by stabker
View Post
Размер массива-то динамический, это невозможно
Всмысле? Создал массив на 6 ячеек, юзай 6 ячеек (text = "t", text = "text1"), зачем стрмиды/стркаты, не понимаю


Re: Возврат текста в return - OstGot - 15.01.2018

Quote:
Originally Posted by Mcc
View Post
Всмысле? Создал массив на 6 ячеек, юзай 6 ячеек (text = "t", text = "text1"), зачем стрмиды/стркаты, не понимаю
Code:
error 046: unknown array size (variable "text")



Re: Возврат текста в return - TriskeliS - 15.01.2018

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


Re: Возврат текста в return - Mcc - 15.01.2018

Quote:
Originally Posted by TriskeliS
Посмотреть сообщение
Зачем оптимизировать то, что и так прекрасно работает.
Чет орнул


Re: Возврат текста в return - TheMallard - 21.01.2018

PHP код:
new const TeamNames[MAX_TEAMS][MAX_TEAM_NAME]=
{
    
"Правительство""LSPD""SFPD""LVPD""Минздрав""FBI""Grove""Ballas"
};