-
- При всех уровнях, согласен, нереально. А вот скомпилировать при самом высоком уровне оптимизации в режимах оптимизации по размеру, по скорости, балансная оптимизация + кросс-файловая оптимизация всегда очень полезно. Dir(363 знак., 24.03.2013 12:53)
- Как я понял, Вы предлагаете попробовать скомпилировать при самой высокой оптимизации, а потом вернуться на более низкую. Зачем? - Леонид Иванович(24.03.2013 13:18)
- при включенной оптимизации бывают сложности с отладкой. Поэтому вначале отлаживаюсь при отключенной оптимизации, потом включаю для отлаженных модулей и проверяю, всё ли работает - koyodza(24.03.2013 19:23)
- Нет. Просто "самый высокий" разный бывает. По размеру, по скорости и т.д. В свою очередь эти модификации включают разные приемы оптимизации. Dir(243 знак., 24.03.2013 13:26 - 13:31)
- Все проекты всегда компилирую с максимальной оптимизацией по скорости. - Леонид Иванович(24.03.2013 13:35)
- аналогично - Snaky(25.03.2013 02:16)
- И это - правильно. Обращайте внимание на все warning - и. - tesla(24.03.2013 22:44)
- Все проекты всегда компилирую с максимальной оптимизацией по скорости. - Леонид Иванович(24.03.2013 13:35)
- Как я понял, Вы предлагаете попробовать скомпилировать при самой высокой оптимизации, а потом вернуться на более низкую. Зачем? - Леонид Иванович(24.03.2013 13:18)
- Я бы предпочёл -Os в одних случаях, -O3 в других где с -O2 точно хуже, в остальных случаях таки и -O2 ибо не факт, чтоб при слишком хорошей оптимизации не вскроются ошибки компилятора и/или программиста, и точно не факт, что они будут обнаружены fk0(59 знак., 23.03.2013 23:45 - 23:52)
- Ошибки компилятора - это миф, а ошибки программиста нужно вычищать. Поэтому всегда только самый высокий уровень оптимизации. - Леонид Иванович(24.03.2013 10:29)
- Увы, не миф Chum_A(295 знак., 25.03.2013 09:08, ссылка)
- Леонид, вы наверно больших программ на микроСи для пик18 не писали :) - scorpion(24.03.2013 22:17)
- Нашёл баг C18 от Микрочипа. Их тех. поддержка со мной согласилась. Если бы мне объяснили где я накосячил по ссылке, был бы сильно признателен. - amx(24.03.2013 14:48, ссылка)
- Извините, гуру(искренне), я тоже придерживаюсь этого мнения. Да и порядок процесса - отладка без оптимизации - проверка с полной оптимизацией. Меня больше напрягали не мои тупости с неиспользованием волатайл, а стыковка аппаратуры с ядром в армах. Белый Жрец из Краснодара(332 знак., 24.03.2013 12:51, )
- Еще одна причина разочарований - использование слишком широкого подмножества языка Си. Некоторые конструкции сами по себе малопонятны, а без них вполне можно обойтись. Например, указатели нужны только в очень редких случаях. - Леонид Иванович(24.03.2013 13:21)
- из "малопонятных" мне нравятся примерно такие:) *ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35 + (tmp_value - value * base)]; - Vit(24.03.2013 13:45, ссылка)
- Тут с месяц назад был вопрос, который остался без ответа. Товарищ подставляет отрицательное значение индекса и удивляется, почему компилятор неправильно вычисляет смещение? Я не понял, откуда он такой способ вычислений смещения взял? - rezident(24.03.2013 14:11, ссылка)
- Я не понял, почему некоторые товарищи считают отрицательные числа -- нечислами. В языке C выражение вида p[x] это лишь syntactic sugar для *(p+x). PS: где-то у классиков, кстати, встречается использование отрицательных индексов, fk0(27 знак., 24.03.2013 14:56)
- Не нужно полунамеков :) Я возражал вам по поводу отрицательных чисел лишь в одном случае, когда знаковым типом переменной исчисляется время. Потому, что у времени только одно направление для изменения - вперед. rezident(448 знак., 24.03.2013 15:32)
- за double difftime(time_t time2, time_t time1) ...нужно сжигать на костре(С) - Vit(24.03.2013 16:11)
- Да, есть такая проблема. Мотивация скорей в том, что разность должна быть скалярным типом однозначно, а вот сам time_t возможно, может быть и указателем на структуру, например. И скалярным целым разницу не представить в принципе (из-за fk0(88 знак., 24.03.2013 21:52)
- с диффом разрыв шаблона - почему не long long? - Vit(24.03.2013 22:56)
- Да, есть такая проблема. Мотивация скорей в том, что разность должна быть скалярным типом однозначно, а вот сам time_t возможно, может быть и указателем на структуру, например. И скалярным целым разницу не представить в принципе (из-за fk0(88 знак., 24.03.2013 21:52)
- за double difftime(time_t time2, time_t time1) ...нужно сжигать на костре(С) - Vit(24.03.2013 16:11)
- Не нужно полунамеков :) Я возражал вам по поводу отрицательных чисел лишь в одном случае, когда знаковым типом переменной исчисляется время. Потому, что у времени только одно направление для изменения - вперед. rezident(448 знак., 24.03.2013 15:32)
- Я не понял, почему некоторые товарищи считают отрицательные числа -- нечислами. В языке C выражение вида p[x] это лишь syntactic sugar для *(p+x). PS: где-то у классиков, кстати, встречается использование отрицательных индексов, fk0(27 знак., 24.03.2013 14:56)
- Тут с месяц назад был вопрос, который остался без ответа. Товарищ подставляет отрицательное значение индекса и удивляется, почему компилятор неправильно вычисляет смещение? Я не понял, откуда он такой способ вычислений смещения взял? - rezident(24.03.2013 14:11, ссылка)
- из "малопонятных" мне нравятся примерно такие:) *ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35 + (tmp_value - value * base)]; - Vit(24.03.2013 13:45, ссылка)
- Еще одна причина разочарований - использование слишком широкого подмножества языка Си. Некоторые конструкции сами по себе малопонятны, а без них вполне можно обойтись. Например, указатели нужны только в очень редких случаях. - Леонид Иванович(24.03.2013 13:21)
- C30 фирмы microchip, версия предшествующая текущей (не путать с XC30). С -O2 "не работала половина программ" -- fk0(328 знак., 24.03.2013 12:27)
- Это только в контроллерах профессионального уровня, там всё по-другому. - Леонид Иванович(24.03.2013 12:36)
- C30 основан на GCC. GCC же массово применяется для контроллеров любительского уровня --> глюкодром! - fk0(24.03.2013 12:51)
- я раньше почему вредный был - потому что у меня
велосипедаплюсов не было - Snaky(24.03.2013 14:05, ссылка) - Всё, что бесплатное, хорошим быть не может по определению. Никто "за так" не будет вкладывать в продукт душу. - Леонид Иванович(24.03.2013 13:23)
- Ну а мне вот ровно наоборот представляется. Если цель – деньги, душу как раз вкладывать ни к чему. Сделал как начальник приказал, манюшки получил – mission aссomplished. А когда человек бесплатно работает, у него одна мотивация – сделать так, йцукен(27 знак., 24.03.2013 15:45, )
- Работать бесплатно быстро надоедает. За это время можно сделать лишь сырой продукт. - Леонид Иванович(24.03.2013 17:04)
- +1. Возможно, при наличии независимого источника доходов было бы иначе - koyodza(24.03.2013 19:10)
- Работать бесплатно быстро надоедает. За это время можно сделать лишь сырой продукт. - Леонид Иванович(24.03.2013 17:04)
- А при коммунизме всё будет бесплатно, всё будет в кайф! - fk0(24.03.2013 14:59)
- Ну а мне вот ровно наоборот представляется. Если цель – деньги, душу как раз вкладывать ни к чему. Сделал как начальник приказал, манюшки получил – mission aссomplished. А когда человек бесплатно работает, у него одна мотивация – сделать так, йцукен(27 знак., 24.03.2013 15:45, )
- я раньше почему вредный был - потому что у меня
- C30 основан на GCC. GCC же массово применяется для контроллеров любительского уровня --> глюкодром! - fk0(24.03.2013 12:51)
- Это только в контроллерах профессионального уровня, там всё по-другому. - Леонид Иванович(24.03.2013 12:36)
- Ну не то, что-бы миф, пару раз за свою жизнь я сталкивался с ошибками в компиляторах. Но это как правило весьма редкие экзотические случаи. - =AlexD=(24.03.2013 10:49)
- без экзотики встречаются. в кайле для ARM долгое время пробрасывалось "dummyread" для volatile переменных Vit(155 знак., 24.03.2013 10:56)
- Поделитесь, пожалуйста, обнаруженными ошибками компилятора. - Леонид Иванович(24.03.2013 10:52)
- Ошибки компилятора - это миф, а ошибки программиста нужно вычищать. Поэтому всегда только самый высокий уровень оптимизации. - Леонид Иванович(24.03.2013 10:29)
- При всех уровнях, согласен, нереально. А вот скомпилировать при самом высоком уровне оптимизации в режимах оптимизации по размеру, по скорости, балансная оптимизация + кросс-файловая оптимизация всегда очень полезно. Dir(363 знак., 24.03.2013 12:53)