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

 
 
 
Reply to this topicStart new topic
> inline функция
d7d1cd
сообщение Nov 18 2013, 11:08
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Привет всем. В проекте помимо файла main.cpp есть 2 файла: funct.cpp и funct.h, в которых описаны функции. Из файла main.cpp я вызываю все функции, описанные в указанных файлах. И вот я решил одну из функций сделать inline. Прописав данное слово перед прототипом функции и перед ее реализацией, я получил от компилятора ошибку: extern inline function "Function0" was referenced but not defined. Без слова inline все работает. Подскажите, как победить?
Go to the top of the page
 
+Quote Post
msalov
сообщение Nov 18 2013, 11:09
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 24-08-07
Из: Беларусь, Минск
Пользователь №: 30 045



Переместите inline-функцию в заголовочный файл целиком.
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 18 2013, 11:17
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(d7d1cd @ Nov 18 2013, 16:08) *
я получил от компилятора ошибку: extern inline function "Function0" was referenced but not defined. Без слова inline все работает. Подскажите, как победить?

inline указывает компилятору, что функцию следует встроить в данный модуль целиком, а не делать ее вызов. Но как компилятор должен встраивать вашу функцию целиком, если в данном модуле эта функция отсутствует, а вместо этого в хидере есть лишь ссылка на нее как на внешнюю функцию? Прототип в хедере сообщает лишь как вызывать функцию (ее адрес) и список аргументов функции. Вообще, вы уверены, что вам эта опция (inline) нужна?
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Nov 18 2013, 11:35
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Спасибо за совет и за объяснения. Я делаю функции, которые будут управлять битами переменной. Так нагляднее в программе, как мне кажется.
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 18 2013, 13:48
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Так может вам макросы (макроподстановки) подойдут, а встраиваемые функции и вовсе не нужны?
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Nov 18 2013, 14:42
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Цитата(rezident @ Nov 18 2013, 17:48) *
Так может вам макросы (макроподстановки) подойдут, а встраиваемые функции и вовсе не нужны?

Расскажите, что это?
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Nov 18 2013, 15:34
Сообщение #7


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(d7d1cd @ Nov 18 2013, 18:42) *
Расскажите, что это?

Сначала в букваре, что такое макросы.
Затем поищите на тему: макросы Аскольда Волкова.

На форуме этот вопрос всплывал не раз, поиск в помощь. (например)


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 08:51
Рейтинг@Mail.ru


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