Как написать лучшую функцию strlen?

Я читаю «Написание отличного кода, том 2», и он показывает следующую строгую реализацию:

int myStrlen( char *s )
{
    char *start;
    start = s;
    while( *s != 0 )
    {
        ++s;
    }
    return s - start;
}

в книге говорится, что эта реализация типична для неопытного программиста на C. Я кодировал на C последние 11 лет, и я не вижу, как написать функцию лучше, чем эта, на C (я могу придумать, как написать лучшую вещь на ассемблере). Как можно лучше писать код на C? Я посмотрел стандартную библиотечную реализацию функции strlen в glibc и не смог понять ее большую часть. Где я могу найти более подробную информацию о том, как писать высокооптимизированный код?

12
задан Victor 5 July 2011 в 14:30
поделиться