jenya7 0 5 июля, 2018 Опубликовано 5 июля, 2018 (изменено) · Жалоба Если я определяю функцию как инлайн файл .h inline uint32_t SYSTIME_GetSystemTime(void); файл .с inline uint32_t SYSTIME_GetSystemTime(void) { //do something } то при вызове функции IAR ругается Error[Li005]: no definition for "SYSTIME_GetSystemTime" то есть функцию надо разместить в .h файле по другому никак? Изменено 5 июля, 2018 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба то есть функцию надо разместить в .h файле по другому никак? А как иначе компилятор получит тело функции для встраивания? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба Зачем вам этот инлайн? Включайте в яре "multifile compilation" и оптимизацию, он сам заинлайнит получше любых вот этих потуг. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба Зачем вам этот инлайн? Включайте в яре "multifile compilation" и оптимизацию, он сам заинлайнит получше любых вот этих потуг. так он заинлайнит все функции. а мне нужно несколько. А как иначе компилятор получит тело функции для встраивания? я думал как и обычные функции - из .h файла Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба так он заинлайнит все функции Ну это вряд ли, зависит от настроек оптимизации и характера кода. А даже если и все, что за печаль? а мне нужно несколько. Интересно, зачем? Нет, правда интересно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба Свидетели секты пресвятого инлайна. :excl: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба Ну это вряд ли, зависит от настроек оптимизации и характера кода. А даже если и все, что за печаль? Интересно, зачем? Нет, правда интересно. ну если все то размер кода вырастит в 10 раз. а это довольно печально.я конечно обеими руками за скорость исполнения но раздувать код до немыслимых пределов я не могу. поэтому и существует трейдофф. Свидетели секты пресвятого инлайна. :excl: если вам не нужен инлайн то наверно вам можно только позавидовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба если вам не нужен инлайн то наверно вам можно только позавидовать. Я Вас уверяю, компилятор может посчитать, что и Вам inline, собственно, не нужен, и не станет вставлять тело функции, а вызовет ее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба если вам не нужен инлайн то наверно вам можно только позавидовать. Вы как бы даже не задумались, что подобные проблемы здесь на форуме возникают только у Вас? Совсем ни о чём не говорит? :biggrin: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба Среди программистов ходит байка, что некоторые компиляторы, видя в коде больше N инлайнов, решают что юзер дурак и забивают на них. Вы как бы даже не задумались, что подобные проблемы здесь на форуме возникают только у Вас? Совсем ни о чём не говорит? :biggrin: Неправда ваша, последователи этой секты появляются с регулярной периодичностью. ну если все то размер кода вырастит в 10 раз. Где такую забористую @$# берёте? В IAR поставьте оптимизацию Balanced и забудьте раз и навсегда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба Где такую забористую @$# берёте? В IAR поставьте оптимизацию Balanced и забудьте раз и навсегда. Вот-вот, я в эту же сторону намекаю :beer: Этот инлайн - тяжёлое наследие кровавого прошлого, когда сердобольные кодеры читали листинг дизассемблера и рыдали от горя. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба файл .h static inline uint32_t SYSTIME_GetSystemTime(void) { //do something } и всё Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kabdim 0 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба Четкие пацаны, которым нужен четкий инлайн пишут не функции, а макросы. Ну а потом уже разбираются с этим счастьем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба Четкие пацаны, которым нужен четкий инлайн пишут не функции, а макросы. Ну а потом уже разбираются с этим счастьем. Поддерживаю. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 5 июля, 2018 Опубликовано 5 июля, 2018 · Жалоба Четкие пацаны, которым нужен четкий инлайн пишут не функции, а макросы. Ну а потом уже разбираются с этим счастьем. Отладить сложно неудобно в макросах, плюс проверка на соответствие типов в макросах отсутствует... ИМХО, не очень удобно. Хотя сам пользуюсь :biggrin: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться