|
Инлайновая функция |
|
|
|
Jul 5 2018, 08:57
|
Профессионал
    
Группа: Участник
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Jul 11 2018, 10:17
|
Местный
  
Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682

|
Насколько я понимаю, под реализацией имеется ввиду компилятор+платформа. Но по поводу доступа к volatile говорится Цитата 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. Что это всего лишь подсказка компилятору, что объект может быть изменен незамеченным для компилятора способом. Однако в случае локального указателя с последующим вызовом, компилятор гарантированно может быть уверен какое значение содержится в нем. Инлайн-вставка никак не противоречит стандарту.
|
|
|
|
Сообщений в этой теме
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 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 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
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|