реклама на сайте
подробности

 
 
> Инлайновая функция
Jenya7
сообщение Jul 5 2018, 08:57
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Если я определяю функцию как инлайн
Код
файл .h
inline uint32_t SYSTIME_GetSystemTime(void);
файл .с
inline uint32_t SYSTIME_GetSystemTime(void)
{  
    //do something
}
то при вызове функции IAR ругается Error[Li005]: no definition for "SYSTIME_GetSystemTime"
то есть функцию надо разместить в .h файле по другому никак?

Сообщение отредактировал Jenya7 - Jul 5 2018, 10:37
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Kabdim
сообщение Jul 5 2018, 13:25
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Четкие пацаны, которым нужен четкий инлайн пишут не функции, а макросы. Ну а потом уже разбираются с этим счастьем.
Go to the top of the page
 
+Quote Post
Arlleex
сообщение Jul 5 2018, 14:53
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264



Цитата(Kabdim @ Jul 5 2018, 17:25) *
Четкие пацаны, которым нужен четкий инлайн пишут не функции, а макросы. Ну а потом уже разбираются с этим счастьем.

Отладить сложно неудобно в макросах, плюс проверка на соответствие типов в макросах отсутствует... ИМХО, не очень удобно. Хотя сам пользуюсь biggrin.gif
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Jul 6 2018, 15:36
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(Arlleex @ Jul 5 2018, 17:53) *
Отладить сложно неудобно в макросах, плюс проверка на соответствие типов в макросах отсутствует... ИМХО, не очень удобно. Хотя сам пользуюсь biggrin.gif

Не только лишь все умеют иронию. sm.gif
Цитата(jcxz @ Jul 6 2018, 14:44) *
Да, в текущей версии IAR это работает, но нет уверенности, что будет также работать и в последующих.
В доках насчёт volatile говорится только применительно к данным, про код ничего не упоминается.

Ну так у компилятора нет гарантий что волотайл указывает на тот код который он думает, поэтому оптимизировать инлайном он не имеет права.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 6 2018, 16:32
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Kabdim @ Jul 6 2018, 18:36) *
Ну так у компилятора нет гарантий что волотайл указывает на тот код который он думает, поэтому оптимизировать инлайном он не имеет права.

Вы полагаете, что способ предложенный scifi, не только сделает функцию явно не-инлайновой, но и запретит оптимизацию её кода? хмм.... если это так, то тогда этот способ некошерный...
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Jul 8 2018, 15:52
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Цитата(jcxz @ Jul 6 2018, 19:32) *
Вы полагаете, что способ предложенный scifi, не только сделает функцию явно не-инлайновой, но и запретит оптимизацию её кода? хмм.... если это так, то тогда этот способ некошерный...

Почему оптимизацию-то запретит? Внутри всё заоптимизирует и снаружи тоже, а вот функцию как единицу вызова оставит. Единственное что вызывать её нужно всё таки по указателю, если быть педантичным.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Инлайновая функция   Jul 5 2018, 08:57
- - aaarrr   Цитата(Jenya7 @ Jul 5 2018, 11:57) то ест...   Jul 5 2018, 09:13
- - scifi   Зачем вам этот инлайн? Включайте в яре "multi...   Jul 5 2018, 09:16
|- - Jenya7   Цитата(scifi @ Jul 5 2018, 14:16) Зачем в...   Jul 5 2018, 10:37
|- - scifi   Цитата(Jenya7 @ Jul 5 2018, 13:37) так он...   Jul 5 2018, 10:49
|- - Jenya7   Цитата(scifi @ Jul 5 2018, 15:49) Ну это ...   Jul 5 2018, 11:09
|- - Arlleex   Цитата(Jenya7 @ Jul 5 2018, 15:09) если в...   Jul 5 2018, 11:13
|- - jcxz   Цитата(Jenya7 @ Jul 5 2018, 14:09) если в...   Jul 5 2018, 11:15
- - VladislavS   Свидетели секты пресвятого инлайна.   Jul 5 2018, 11:05
- - VladislavS   Среди программистов ходит байка, что некоторые ком...   Jul 5 2018, 11:31
|- - scifi   Цитата(VladislavS @ Jul 5 2018, 14:31) Гд...   Jul 5 2018, 11:42
- - demiurg_spb   Кодфайл .h static inline uint32_t SYSTIME_GetSyste...   Jul 5 2018, 13:20
|- - jcxz   Цитата(Kabdim @ Jul 5 2018, 16:25) Четкие...   Jul 5 2018, 14:38
||- - jcxz   Цитата(Kabdim @ Jul 8 2018, 18:52) Почему...   Jul 8 2018, 23:47
|- - scifi   Цитата(Kabdim @ Jul 5 2018, 16:25) Четкие...   Jul 5 2018, 14:59
|- - esaulenka   Цитата(scifi @ Jul 5 2018, 17:59) инлайн ...   Jul 5 2018, 19:49
||- - Сергей Борщ   QUOTE (esaulenka @ Jul 5 2018, 22:49) Мож...   Jul 5 2018, 23:19
|- - jcxz   Цитата(scifi @ Jul 5 2018, 17:59) Но дело...   Jul 5 2018, 20:07
- - technik-1017   inline нужен, например, для функций в прерываниях,...   Jul 5 2018, 15:19
- - VladislavS   Начиная с C++11 в каждой новой спецификации добавл...   Jul 6 2018, 03:48
|- - scifi   Цитата(VladislavS @ Jul 6 2018, 06:48) Мо...   Jul 6 2018, 06:53
|- - jcxz   Цитата(VladislavS @ Jul 6 2018, 06:48) По...   Jul 6 2018, 07:27
|- - scifi   Цитата(jcxz @ Jul 6 2018, 10:27) Мне здес...   Jul 6 2018, 07:36
|- - jcxz   Цитата(scifi @ Jul 6 2018, 10:36) Был слу...   Jul 6 2018, 07:51
|- - demiurg_spb   Цитата(jcxz @ Jul 6 2018, 10:51) А в IAR ...   Jul 6 2018, 11:13
||- - jcxz   Цитата(demiurg_spb @ Jul 6 2018, 14:13) А...   Jul 6 2018, 11:23
||- - VladislavS   Цитата(jcxz @ Jul 6 2018, 14:23) Но я не ...   Jul 6 2018, 11:26
||- - demiurg_spb   Немного погуглив нашёл _Pragma(...) Код#ifdef IAR ...   Jul 6 2018, 11:30
|- - scifi   Цитата(jcxz @ Jul 6 2018, 10:51) Но кто д...   Jul 6 2018, 11:25
|- - jcxz   Цитата(scifi @ Jul 6 2018, 14:25) Как кто...   Jul 6 2018, 11:44
|- - demiurg_spb   Цитата(jcxz @ Jul 6 2018, 14:44) Ну так э...   Jul 6 2018, 11:47
|- - scifi   Цитата(jcxz @ Jul 6 2018, 14:44) Да, в те...   Jul 6 2018, 12:54
|- - jcxz   Цитата(scifi @ Jul 6 2018, 15:54) Это уже...   Jul 6 2018, 15:24
- - Jenya7   вобщем вдруг осенило. вспомнилКод#define Foo(...   Jul 7 2018, 05:45
|- - Arlleex   Цитата(Jenya7 @ Jul 7 2018, 08:45) вобщем...   Jul 9 2018, 18:49
- - Kabdim   Сильно удивляете. Стандарт на язык читать надо, а ...   Jul 9 2018, 01:10
|- - aiwa   Цитата(Kabdim @ Jul 9 2018, 04:10) Сильно...   Jul 9 2018, 20:12
|- - jcxz   Цитата(Kabdim @ Jul 9 2018, 04:10) Сильно...   Jul 10 2018, 06:17
|- - scifi   Цитата(jcxz @ Jul 10 2018, 09:17) Можете ...   Jul 10 2018, 06:23
|- - jcxz   Цитата(scifi @ Jul 10 2018, 09:23) Кое-чт...   Jul 10 2018, 06:45
|- - VladislavS   Цитата(jcxz @ Jul 10 2018, 09:45) Соответ...   Jul 10 2018, 07:10
- - aiwa   Имхо, в случае с указателем на функцию играет роль...   Jul 10 2018, 06:55
- - scifi   Я устал объяснять. Просто скажу, что вы заблуждает...   Jul 10 2018, 06:55
- - aiwa   { ((void (* volatile)())func)(); // оптимизирует ...   Jul 10 2018, 07:11
- - Kabdim   N3690 Цитата146p 7.1.6.1 The cv-qualifiers 7 [ Not...   Jul 10 2018, 10:29
|- - aiwa   Цитата(Kabdim @ Jul 10 2018, 13:29) Нет в...   Jul 10 2018, 11:32
|- - scifi   Цитата(aiwa @ Jul 10 2018, 14:32) В одном...   Jul 10 2018, 11:51
|- - Kabdim   Цитата(aiwa @ Jul 10 2018, 14:32) В одном...   Jul 10 2018, 13:49
|- - aiwa   Цитата(Kabdim @ Jul 10 2018, 16:49) К чем...   Jul 10 2018, 14:36
|- - jcxz   Цитата(aiwa @ Jul 10 2018, 17:36) Если ег...   Jul 11 2018, 06:57
|- - jcxz   Цитата(jcxz @ Jul 11 2018, 09:57) так как...   Jul 11 2018, 07:59
||- - scifi   Цитата(jcxz @ Jul 11 2018, 10:59) Как вид...   Jul 11 2018, 08:03
||- - jcxz   Цитата(scifi @ Jul 11 2018, 11:03) Гарант...   Jul 11 2018, 08:08
||- - scifi   Цитата(jcxz @ Jul 11 2018, 11:08) Ладно -...   Jul 11 2018, 08:11
||- - jcxz   Цитата(scifi @ Jul 11 2018, 11:11) И это ...   Jul 11 2018, 08:12
||- - scifi   Цитата(jcxz @ Jul 11 2018, 11:12) Ну-ну.....   Jul 11 2018, 08:13
|- - aiwa   Цитата(jcxz @ Jul 11 2018, 09:57) Так что...   Jul 11 2018, 10:01
|- - scifi   Цитата(aiwa @ Jul 11 2018, 13:01) Стандар...   Jul 11 2018, 10:03
|- - Kabdim   Цитата(aiwa @ Jul 11 2018, 13:01) Стандар...   Jul 11 2018, 10:24
|- - scifi   Цитата(Kabdim @ Jul 11 2018, 13:24) преду...   Jul 11 2018, 10:28
|- - Kabdim   Цитата(scifi @ Jul 11 2018, 13:28) Значит...   Jul 11 2018, 10:34
- - VladislavS   Господа, вы научно-технические извращенцы Скомпил...   Jul 10 2018, 11:41
|- - jcxz   Цитата(VladislavS @ Jul 10 2018, 14:41) С...   Jul 10 2018, 11:56
- - VladislavS   Блин, секта отрицателей инлайна, оказывается, ещё ...   Jul 10 2018, 12:01
|- - demiurg_spb   Тут ещё extern inline не обсосали))) Помню что в ...   Jul 10 2018, 12:26
|- - aiwa   Цитата(VladislavS @ Jul 10 2018, 15:01) Б...   Jul 10 2018, 13:41
- - VladislavS   Придумал. Если функцию разместить в другой секции,...   Jul 10 2018, 14:33
- - Kabdim   Почему ничего не меняется? По-моему меняется инлай...   Jul 10 2018, 15:26
|- - aiwa   Цитата(Kabdim @ Jul 10 2018, 18:26) УПД2:...   Jul 11 2018, 05:55
|- - jcxz   Цитата(Kabdim @ Jul 10 2018, 18:26) попро...   Jul 11 2018, 07:10
|- - scifi   Цитата(jcxz @ Jul 11 2018, 10:10) А я при...   Jul 11 2018, 07:23
|- - Kabdim   Цитата(jcxz @ Jul 11 2018, 10:10) Где??? ...   Jul 11 2018, 09:06
- - scifi   Цитата(jcxz @ Jul 11 2018, 09:57) ничто н...   Jul 11 2018, 07:04
|- - jcxz   Цитата(scifi @ Jul 11 2018, 10:04) Возраж...   Jul 11 2018, 07:40
|- - scifi   Код уже приводили: Кодvoid f(void) { do_...   Jul 11 2018, 07:45
- - aiwa   Насколько я понимаю, под реализацией имеется ввиду...   Jul 11 2018, 10:17
|- - scifi   Цитата(aiwa @ Jul 11 2018, 13:17) Однако ...   Jul 11 2018, 10:20
|- - aiwa   Цитата(scifi @ Jul 11 2018, 13:20) Станда...   Jul 11 2018, 10:30
||- - scifi   Цитата(aiwa @ Jul 11 2018, 13:30) В англи...   Jul 11 2018, 10:35
|- - aiwa   Цитата(scifi @ Jul 11 2018, 13:20) Нет, н...   Jul 12 2018, 10:01
- - Kabdim   Кстати с волатайл буферами (если не хочется быть п...   Jul 11 2018, 10:50


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01509 секунд с 7
ELECTRONIX ©2004-2016