* str и * str ++

У меня есть этот код (моя функция strlen)

size_t slen(const char *str)
{
    size_t len = 0;
    while (*str)
    {
        len++;
        str++;
    }
    return len;
}

Выполнение while (* str ++) , как показано ниже, время выполнения программы составляет намного больше:

while (*str++)
{
    len++;
}

Я делаю это, чтобы проверить код

int main()
{
    double i = 11002110;
    const char str[] = "long string here blablablablablablablabla"
    while (i--)
        slen(str);

    return 0;
}

В первом случае время выполнения составляет около 6,7 секунды, а во втором (с использованием * str ++ ) время составляет около 10 секунд!

Почему такая большая разница?

8
задан Whymarrh 30 May 2014 в 00:44
поделиться