Звучит не так, как будто проблема связана с самим strcmp
, как с тем, как вы его используете.
Самый быстрый способ сравнить строки с таблицей предопределенных строк,чтобы убедиться, что строки отсортированы в алфавитном порядке, а затем использовать бинарный поиск.Где strcmp
действует как функция сравнения.Стандарт C bsearch
может или не может быть осуществимым во встроенной системе.В противном случае это довольно просто реализовать самостоятельно.
То есть, если количество строк не велико.Тогда в какой-то момент некоторые хэш-таблицы будут работать лучше, чем поиск.Чтобы получить точный ответ о том, что работает лучше всего, нужны все детали данных.
С помощью строк фиксированной длины вы можете немного улучшить производительность, используя вместо этого memcmp
- таким образом, вы этого не сделаетедолжны проверить против нулевого завершения.Но это действительно микрооптимизация.