Re: Не используйте int там где он не нужен
От: Serg27  
Дата: 20.06.14 09:07
Оценка:
У меня есть старое правило — не использовать int там где он не нужен. В частности для счетчиков циклов я всегда использую size_t. Это позволяет избежать кучу проблем, на которые можно наступить. Это код — как раз пример такой проблемы. Изменение типа счетчика цикла с int на unsigned int полностью убирает проблему — здесь
Я тут не спорю об правильности/неправильности поведения компилятора и всяких других интересных вещах, о которых интересно поговорить/почитать. Я тут говорю о некоторых простых правилах, которые позволяют избежать проблем при написании производственного кода. Правило "Не используйте int там где он не нужен" одно из них. Все же арифметика unsigned величин значительно проще чем для signed и гораздо предсказуемее. В качестве иллюстрации приведу статью на codeproject — здесь В ней автор "оптимизирует" руками вычислительный алгоритм. Мне его методы показались подозрительными (это умеют делать компиляторы уже лет 40) и подозрительным показалось разница в производительности x86 и 64-битного кода. И действительно замена типа переменной с long long на unsigned long long сразу дала нужный прирост производительности. Можно посмотреть ветку "best optimization" в обсуждении этой статьи. (здесь)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.