Просмотр полной версии : [Вопрос] Объединение значений в enum
Elrmrnt-Kritik
03.01.2018, 18:09
Добрый вечер. Подскажите пожалуйста в моем маленьком вопросике. Допустим, есть enum, в котором прописаны ID фракций:
enum
{
F_PPS,
F_DPS,
/*....*/
}
ППС и ДПС, грубо говоря, есть полиция (F_POLICE). Можно ли как-то сделать так, чтобы в проверках я мог писать не
if(frac == F_PPS || frac == F_DPS)
А примерно так:
if(frac == F_POICE)
Без использования макросов.
Пробовал такой вариант, однако, предупреждения при компиляции возникают (что символ уже объявлен):
enum F_POLICE
{
F_PPS,
F_DPS
}
У тебя есть 2 значения: 0 и 1. Как думаешь, можно ли проверить, равна ли переменная frac одному из значений, просто сделав "=="?)
#define IsFractionPD(%0) (%0 == F_PPS || %0 == F_DPS)
Коротко и ясно. К чему изобретать велосипед?
Elrmrnt-Kritik
03.01.2018, 22:08
В приложенном мной варианте еще да, и с макросом будет неплохо, а когда будет таких не две фракции, а десять, уж в макрос все лепить тоже не очень хочется. Ну, ладно, ответ в принципе получил, спасибо большое :smile:
В приложенном мной варианте еще да, и с макросом будет неплохо, а когда будет таких не две фракции, а десять, уж в макрос все лепить тоже не очень хочется. Ну, ладно, ответ в принципе получил, спасибо большое :smile:
Почему в макрос 10 фракций не хочется лепить? Взял перенес строку и все. Это куда лучше чем делать сток или прочее xD
Elrmrnt-Kritik
03.01.2018, 22:23
Почему в макрос 10 фракций не хочется лепить? Взял перенес строку и все. Это куда лучше чем делать сток или прочее xD
Да понятно, что лучше функции, но... Просматривать неудобно будет длинную строку для поиска какой-нибудь фракции.
Да понятно, что лучше функции, но... Просматривать неудобно будет длинную строку для поиска какой-нибудь фракции.
Ну так создай функцию и в ней сделай условие с switch + case.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot