Избегайте дублирования усилий
Следующий фрагмент демонстрирует эту проблему:
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
{
}