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

 
 
> ф-я инлайн, не хочет компилится
Метценгерштейн
сообщение Jun 22 2015, 11:26
Сообщение #1


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Keil, ARM

создаю ф-ю
Код
inline void lowPowerHeat (void)
{    
    fSinglePower = 1;
    fDowblePower  =0;
}

где присваиваю двум глобальным переменным значения.
Дальше по коду вызываю эту ф-ю. Но выдает ошибку
.\_build\v1_0_alpha.axf: Error: L6218E: Undefined symbol lowPowerHeat (referred from logic_work.o).

стоит только или:
1 -убрать inline или
2- дописать static или
3- закомментировать любую переменную внутри ф-ии или
4- внутри тела файла один из двух (любой) вызов ф-ии закомментить, то

ошибка пропадает.
А почему так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Метценгерштейн
сообщение Jun 22 2015, 17:24
Сообщение #2


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



понятно, что статик- это область видимости только. Никак на решение проблемы не должно влиять.
Но в чем причина такого поведения?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jun 22 2015, 18:45
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Да вроде даже интуитивно понятно - чтобы подставить вызов функции, надо знать только имя и список параметров. А чтобы подставить саму функцию - надо знать всю функцию целиком.
В первом случае достаточно объявления, во втором - необходимо определение.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Метценгерштейн   ф-я инлайн   Jun 22 2015, 11:26
- - Lotor   Подозреваю, что Вам стоит убрать инлайновую функци...   Jun 22 2015, 11:34
- - Метценгерштейн   а почему? Она в .c находится. Разве так нельзя?   Jun 22 2015, 12:16
- - Harvester   Насколько я понимаю, inline-функция просто по-опре...   Jun 22 2015, 13:42
|- - CrimsonPig   Цитата(Harvester @ Jun 22 2015, 14:42) На...   Jun 22 2015, 15:11
|- - Метценгерштейн   Цитата(AHTOXA @ Jun 22 2015, 21:45) Да вр...   Jun 22 2015, 19:57
|- - jcxz   Цитата(Метценгерштейн @ Jun 23 2015, 01:5...   Jun 23 2015, 02:59
|- - AHTOXA   Цитата(Метценгерштейн @ Jun 23 2015, 00:5...   Jun 23 2015, 04:45
- - halfdoom   Цитата(Метценгерштейн @ Jun 22 2015, 14:2...   Jun 23 2015, 04:51
|- - jcxz   Цитата(halfdoom @ Jun 23 2015, 10:51) Есл...   Jun 23 2015, 05:22
- - Метценгерштейн   Всем привет. Попробуем еще раз сначала. Допускаю, ...   Jun 23 2015, 06:10
- - ViKo   Может, компилятор выбросил ненужную переменную?   Jun 23 2015, 06:45
|- - CrimsonPig   Цитата(ViKo @ Jun 23 2015, 07:45) Может, ...   Jun 23 2015, 07:47
- - Метценгерштейн   еще раз, я в одном файле .c создал эту inline ф-ю ...   Jun 23 2015, 07:57
- - ar__systems   Цитата(Метценгерштейн @ Jun 23 2015, 02:5...   Jun 23 2015, 23:47


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

 


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


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