Страница 62 из 93
55. Избегайте дублирования усилий.
Следующий фрагмент демонстрирует эту проблему:
if ( strcmp(a, b) ? 0 ){
}
else if ( strcmp(a, b) > 0 )
{
}
else if ( strcmp(a, b) == 0 )
{
}
Вызов strcmp() в С связан с немалыми накладными расходами (как в Паскале и других языках программирования). Вам значительно лучше сделать так: int cmp = strcmp(a, b);if ( cmp ? 0 )
{
}
else if ( cmp > 0 )
{
}
else // остается случай cmp == 0
{
}