Просмотр полной версии : [Вопрос] Назв. орг, свитч или массив?
Доброго времени суток. Где лучше хранить название организаций, рангов в массиве или каждый раз через switch?
Desulaid
17.06.2016, 02:49
Массив.
Daniel_Cortez
17.06.2016, 18:20
В массиве, естественно. Только следует иметь в виду, что при обращении к массиву следует проверять правильность индекса, чтобы не допустить выхода за пределы массива.
new const family_names[3][]
{
{"Нет"},
{"Полиция"},
{"Армия"},
};
new family = player_info[playerid][pFamily];
// Проверка правильности ID организации (вдруг в моде баг или админ по ошибке поставил не тот ID?)
// По схожему принципу должны проверяться все индексы, которые зависят от вводимых игроком данных.
if ((family < 0) || (family >= sizeof(family_names)))
return 0; // Здесь можно вывести какое-нибудь сообщение об ошибке.
// Для примера выведем название в консоль.
printf("Организация: %s", family_names[family]);
В массиве, естественно. Только следует иметь в виду, что при обращении к массиву следует проверять правильность индекса, чтобы не допустить выхода за пределы массива.
new const family_names[3][]
{
{"Нет"},
{"Полиция"},
{"Армия"},
};
new family = player_info[playerid][pFamily];
// Проверка правильности ID организации (вдруг в моде баг или админ по ошибке поставил не тот ID?)
// По схожему принципу должны проверяться все индексы, которые зависят от вводимых игроком данных.
if ((family < 0) || (family >= sizeof(family_names)))
return 0; // Здесь можно вывести какое-нибудь сообщение об ошибке.
// Для примера выведем название в консоль.
printf("Организация: %s", family_names[family]);
new family = player_info[playerid][pFamily];
Не лучше ли тут сделать макрос ?
#define family player_info[playerid][pFamily]
new family = player_info[playerid][pFamily];
Не лучше ли тут сделать макрос ?
#define family player_info[playerid][pFamily]
Во время компиляции макросы удаляются и заменяются на исходный вариант.
Desulaid
18.06.2016, 00:23
new family = player_info[playerid][pFamily];
Не лучше ли тут сделать макрос ?
#define family player_info[playerid][pFamily]
Много раз обращаться через массив будет затратнее по времени, чем к переменной.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot