Вы можете сделать это как сравнение по типу int или int или, если хотите, еще более широкий тип данных.
Две вещи, которые вы должны остерегаться (как минимум), это выступ в начале начала , а также в конце, и то, отличаются ли выравнивания между двумя областями.
Некоторые процессоры работают медленнее, если вы обращаетесь к значениям, не следуя их правилам выравнивания (некоторые даже вылетают, если вы пытаетесь это сделать).
Таким образом, ваш код может выполнять char
сравнений до int
области выравнивания, затем int
сравнений, затем char
сравнений снова, но, опять же, выравнивания обеих областей будут вероятно, имеет значение.
Стоит ли такая дополнительная сложность кода при любой экономии, которую вы получите, зависит от многих факторов, находящихся вне вашего контроля. Один из возможных методов - обнаружить идеальный случай, когда обе области выровнены одинаково, и сделать это быстрым способом, в противном случае просто сделать это посимвольно.