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

 
 
> Инлайновая функция
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 10 2018, 10:29
Сообщение #2


Знающий
****

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



N3690
Цитата
146p 7.1.6.1 The cv-qualifiers
7 [ Note: volatile is a hint to the implementation to avoid aggressive optimization involving the object
because the value of the object might be changed by means undetectable by an implementation. Furthermore,
for some implementations, volatile might indicate that special hardware instructions are required to access
the object. See 1.9 for detailed semantics. In general, the semantics of volatile are intended to be the
same in C++ as they are in C. — end note ]

8p 1.9 Program execution
8 The least requirements on a conforming implementation are:
Access to volatile objects are evaluated strictly according to the rules of the abstract machine

Т.е. оно не заоптимизирует указатель даже если не видит переприсваиваний ему, а в нужном участке кода считает его значение и выполнит вызов функции по нему.

Отчего у вас в голове родилась странная идея что внутри тела фукнции будет отключена оптимизация я не знаю. Она неверна.

Цитата(aiwa @ Jul 10 2018, 10:11) *
{
((void (* volatile)())func)(); // оптимизирует несмотря на volatile. наверное потому, что получаемый указатель rvalue;
}

Нет волатайл объекта - нет ограничений. Вот так уже работает.
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
- - Kabdim   Четкие пацаны, которым нужен четкий инлайн пишут н...   Jul 5 2018, 13:25
|- - jcxz   Цитата(Kabdim @ Jul 5 2018, 16:25) Четкие...   Jul 5 2018, 14:38
|- - Arlleex   Цитата(Kabdim @ Jul 5 2018, 17:25) Четкие...   Jul 5 2018, 14:53
||- - Kabdim   Цитата(Arlleex @ Jul 5 2018, 17:53) Отлад...   Jul 6 2018, 15:36
||- - jcxz   Цитата(Kabdim @ Jul 6 2018, 18:36) Ну так...   Jul 6 2018, 16:32
||- - Kabdim   Цитата(jcxz @ Jul 6 2018, 19:32) Вы полаг...   Jul 8 2018, 15:52
||- - 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
|- - 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 - 13:17
Рейтинг@Mail.ru


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