PDA

Просмотр полной версии : [Вопрос] Можно ли так?



yuriy5022
24.01.2017, 13:07
Можно ли в енуменаторе добавить массив и использовать, примерно так:



enum e_player
{
p_id,
p_nick[MAX_PLAYER_NAME],
p_password[MAX_PLAYER_PASSWORD],
p_string[2048]
}
new user[MAX_PLAYERS][e_player];


И после использовать его везде, например при формировании запроса к БД в mysql_format и так далее.

Вместо этого:


static const fmt[] = "SELECT * FROM `accounts` WHERE `nickname` = '%e'";
new str[sizeof(fmt) + (-2 + MAX_PLAYER_NAME) + 1];

mysql_format(mysql_connection_id, str, sizeof(str), fmt, user[playerid][p_nick]);
mysql_query(mysql_connection_id, str);

Делать так:


mysql_format(mysql_connection_id, user[playerid][p_string], MAX_PLAYER_STRING, "SELECT * FROM `accounts` WHERE `nickname` = '%e'", user[playerid][p_nick]);
mysql_query(mysql_connection_id, user[playerid][p_string]);

При использовании в strcat/strins и пр. очищать
user[playerid][p_string][0] = '\0';

qwezert
24.01.2017, 13:22
Где то я видел на про-павне стетью о том что использовать глобальную переменную для хранения текста - одна из самых грубых и распространенных ошибок новичка, но не могу найти.
Зачем тебе это?
Правильнее будет так -как ты уже сделал и не нужно пытаться придумать велосипед.