-
- В CVAVR Integer Promotion - опция, которую надо выставлять в Project Configure - MBedder(09.11.2008 13:48)
- Ну в такие тонкости я не вникал, ибо никогда себе этот компилятор не ставил. Почти "Пастернака не читал, но осуждаю". ReAl(430 знак., 09.11.2008 14:09)
- Поясните, пожалуйста, по integer promotion. alcosar(1040 знак., 09.11.2008 09:25)
- Потому что для данного компилятора int - 16-битный. Если оба операнда имеют ширину равную или меньшую int, то оба расширяются до int, если у кого-то ширина больше, то расширяется до него. Т.е. перед началом вычислений ширина не меньше int И не меньше ReAl(97 знак., 09.11.2008 14:01)
- Большое спасибо за пояснение. Еще спрошу. Я встречал в .h файле функцию с объявлением static inline. Здесь же был и код функции. Какое преимущество по сравнению с размещением кода функции в .c файле? - alcosar(09.11.2008 15:45)
- Этот .h можно включить в несколько .c и есть большая вероятность, что компилятор встроит тело static inline функции в точку вызова в каждом из файлов. - Сергей Борщ(09.11.2008 22:13)
- А разве не так же будет, если код функции будет в .с файле, а саму функцию не объявлять static? - alcosar(10.11.2008 07:43)
- Тогда будет сгенерирован вызов этой функции, а не встраивание. На очень маленьких функциях встраивание может дать существенный эффект как по коду, так и по времени. Второй случай - когда функция большая, но вызывается только из одного места в программе. Сергей Борщ(74 знак., 10.11.2008 09:07)
- Спасибо. - alcosar(10.11.2008 22:47)
- Тогда будет сгенерирован вызов этой функции, а не встраивание. На очень маленьких функциях встраивание может дать существенный эффект как по коду, так и по времени. Второй случай - когда функция большая, но вызывается только из одного места в программе. Сергей Борщ(74 знак., 10.11.2008 09:07)
- А разве не так же будет, если код функции будет в .с файле, а саму функцию не объявлять static? - alcosar(10.11.2008 07:43)
- Этот .h можно включить в несколько .c и есть большая вероятность, что компилятор встроит тело static inline функции в точку вызова в каждом из файлов. - Сергей Борщ(09.11.2008 22:13)
- Большое спасибо за пояснение. Еще спрошу. Я встречал в .h файле функцию с объявлением static inline. Здесь же был и код функции. Какое преимущество по сравнению с размещением кода функции в .c файле? - alcosar(09.11.2008 15:45)
- Потому что для данного компилятора int - 16-битный. Если оба операнда имеют ширину равную или меньшую int, то оба расширяются до int, если у кого-то ширина больше, то расширяется до него. Т.е. перед началом вычислений ширина не меньше int И не меньше ReAl(97 знак., 09.11.2008 14:01)
- В CVAVR Integer Promotion - опция, которую надо выставлять в Project Configure - MBedder(09.11.2008 13:48)