SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 14/01/2018, 06:18 PM   #1
Josipo
Big Clucker
 
Join Date: Dec 2010
Posts: 97
Reputation: 0
Default Возврат текста в return

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

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

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

return text;
}


Пример выше - это плохой код? Покажите альтерантиву
Josipo is offline   Reply With Quote
Old 14/01/2018, 07:30 PM   #2
stabker
High-roller
 
stabker's Avatar
 
Join Date: Mar 2012
Location: Andromeda Galaxy
Posts: 1,320
Reputation: 86
Default Re: Возврат текста в return

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

stabker is offline   Reply With Quote
Old 14/01/2018, 07:33 PM   #3
Mcc
Huge Clucker
 
Join Date: May 2015
Posts: 457
Reputation: 19
Default Re: Возврат текста в return

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?
Mcc is offline   Reply With Quote
Old 14/01/2018, 08:06 PM   #4
ZiGGi
High-roller
 
ZiGGi's Avatar
 
Join Date: Sep 2008
Location: Russia
Posts: 1,718
Reputation: 334
Default Re: Возврат текста в return

А почему лучше это не возвращать: 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);
    }

ZiGGi is offline   Reply With Quote
Old 14/01/2018, 08:44 PM   #5
Mutha_X
Gangsta
 
Join Date: Sep 2009
Location: recursion
Posts: 640
Reputation: 26
Default Re: Возврат текста в return

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;

__________________
Russian forums: asking question - taking grammar notations.
Учитесь задавать вопросы по существу и изучать матчасть: иначе приобретайте лекарство "НИБОМБИН".
Mutha_X is offline   Reply With Quote
Old 14/01/2018, 09:56 PM   #6
stabker
High-roller
 
stabker's Avatar
 
Join Date: Mar 2012
Location: Andromeda Galaxy
Posts: 1,320
Reputation: 86
Default Re: Возврат текста в return

Quote:
Originally Posted by Mcc View Post
А в чем здесь прикол strmid?
А что надо было?
stabker is offline   Reply With Quote
Old 14/01/2018, 09:59 PM   #7
Mcc
Huge Clucker
 
Join Date: May 2015
Posts: 457
Reputation: 19
Default Re: Возврат текста в return

Quote:
Originally Posted by stabker View Post
А что надо было?
text = "text" не?
Mcc is offline   Reply With Quote
Old 14/01/2018, 10:53 PM   #8
stabker
High-roller
 
stabker's Avatar
 
Join Date: Mar 2012
Location: Andromeda Galaxy
Posts: 1,320
Reputation: 86
Default Re: Возврат текста в return

Quote:
Originally Posted by Mcc View Post
text = "text" не?
Размер массива-то динамический, это невозможно
stabker is offline   Reply With Quote
Old 15/01/2018, 09:32 AM   #9
Mcc
Huge Clucker
 
Join Date: May 2015
Posts: 457
Reputation: 19
Default Re: Возврат текста в return

Quote:
Originally Posted by stabker View Post
Размер массива-то динамический, это невозможно
Всмысле? Создал массив на 6 ячеек, юзай 6 ячеек (text = "t", text = "text1"), зачем стрмиды/стркаты, не понимаю
Mcc is offline   Reply With Quote
Old 15/01/2018, 10:04 AM   #10
OstGot
Gangsta
 
OstGot's Avatar
 
Join Date: Mar 2013
Location: Gomel, Belarus
Posts: 692
Reputation: 293
Default Re: Возврат текста в return

Quote:
Originally Posted by Mcc View Post
Всмысле? Создал массив на 6 ячеек, юзай 6 ячеек (text = "t", text = "text1"), зачем стрмиды/стркаты, не понимаю
Code:
error 046: unknown array size (variable "text")
__________________
aka Nexius
Don't want to always check for updates of my scripts?
Include it the last, after all others
Nexius's Update Checker
OstGot is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Форматирование текста FaGo Русский/Russian 7 16/08/2016 05:06 PM
[Вопрос] Повтор текста в чате wabbajek Русский/Russian 5 10/02/2016 07:46 AM
Разбивка текста на 3 строки MeNaceSwagga Русский/Russian 2 12/04/2015 01:09 AM
Возвращение текста Romz Русский/Russian 13 12/01/2014 01:35 PM


All times are GMT. The time now is 07:47 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.