Вопрос: должен ли компилятор пытаться преобразовать for(i = 0; i < strlen(str); i++) во что-нибудь вида for(i = 0; str[i]; i++) ? Я считаю, что не должен - даже если видно, что операторы внутри цикла не изменяют длину строки (и строка не volatile). Если пользователю охота превратить линейную сложность в квадратичную - его право. А дело компилятора - выдать предупреждение. "Вы вот здесь поставили strlen, а он не нужен. Потрудитесь убрать, а то вдруг будете компилировать другим компилятором, а он такого не скажет."
Ответ на:
комментарий
от pacify
Ответ на:
комментарий
от Sikon
Ответ на:
комментарий
от Sikon
Ответ на:
комментарий
от svu
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от svu
Ответ на:
комментарий
от svu
Ответ на:
комментарий
от MYMUR
Ответ на:
комментарий
от Legioner
Ответ на:
комментарий
от svu
Ответ на:
комментарий
от Sikon
Ответ на:
комментарий
от xTERM
Ответ на:
комментарий
от xTERM
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от xTERM
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от xTERM
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Sikon
Ответ на:
комментарий
от xTERM
Ответ на:
комментарий
от blaster999
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Оптимизация вызова методов (2014)
- Форум strlen(NULL); (2003)
- Форум Так ли нужна оптимизация хвостовых вызовов? (2013)
- Форум оптимизация (2005)
- Форум Оптимизация (2004)
- Форум оптимизация (2005)
- Форум strlen и другие извращения C (2006)
- Форум Соглашение вызова. (2017)
- Форум Системные вызовы (2020)
- Форум Вызовы библиотек (2003)