Объедините ответы. Сначала используйте функцию (вариант grahamparks):
BOOL isFoo(int identifier)
{
...
return ...;
}
Для чего-то эта простая функция , вероятно, лучше, чем метод - вызов происходит намного быстрее и нет необходимости переопределять его Кроме того, если функция требуется только в текущем файле, объявите ее static BOOL isFoo...
, чтобы ограничить видимость isFoo
только файлом.
Теперь выберите тело, которое соответствует данным - пара значений, сравнения (грампарки); более нескольких значений, но все в пределах 0-31 (uint32_t
) или 0-63 (uint64_t
) учитывают битовую маску (разматывать); многие значения во всем диапазоне рассматривают множества (Ричард Дж. Росс III); или сверните свое собственное. Важный момент, какой бы алгоритм вы ни выбрали, изолирован внутри функции и может быть легко изменен при необходимости, не затрагивая остальную часть вашего кода.
В качестве существующих похожих примеров рассмотрим isDigit()
и др. в стандартной библиотеке C. В некоторых реализациях они используют предварительно распределенные массивы логических значений (256 элементов в качестве аргумента является символом), поэтому проверка на членство в наборе - это просто операция индекса массива.