Возврат текста в return
#1

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

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

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

return text;
}


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

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

Reply
#3

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?
Reply
#4

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

Reply
#5

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;

Reply
#6

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

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

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

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

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

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

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

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


Forum Jump:


Users browsing this thread: 1 Guest(s)