Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
h3mbr0
228 / 71 / 16
Регистрация: 12.03.2012
Сообщений: 318
#1

inline функции - C++

05.09.2012, 21:57. Просмотров 612. Ответов 4
Метки нет (Все метки)

Добрый вечер. Хотелось бы узнать, есть ли минусы у inline функций кроме увеличения размера файла? Везде пишут что использование "жирных" inline фунций, наоборот, отрицательно скажется на производительности, но почему - там не объяснено
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2012, 21:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос inline функции (C++):

Inline функции - на сколько должна быть маленькая функция, чтоб она подошла под inline? - C++
Здравствуйте. Знаю теорию, но не понимаю, на сколько должна быть маленькая функция, чтоб она подошла под inline ? Как...

inline функции vs инструкции inline функций - C++
Здравствуйте. Чтобы не писать повторно код, нужно использовать функции. Но если функции компактные, то их лучше делать inline функциями, т....

inline - функции - C++
Стоит-ли добавлять префикс inline ко всем функциям, состоящим из 1-2 строк?

inline функции - C++
Как рабоает функция inline, и какие у неё преимущества? Если она такая крутая как я понял, то зачем простые функции??

Inline функции. - C++
Здравствуйте. Скажите пожалуйста, объявление функции как inline нужно делать как в прототипе так и в определении или достаточно только в...

Inline функции - C++
Здарова всем! А может кто-нибудь объяснить товарищу внятно, для чего нужны inline-функции? Вроде говорят, что их объявлять нужно до...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Петррр
5955 / 3392 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
05.09.2012, 22:02 #2
Код inline функций подставляется на место вызова во время компиляции. Если функция большая и часто вызывается, то размер файла естественно увелится.
1
Avazart
Эксперт С++
7187 / 5361 / 280
Регистрация: 10.12.2010
Сообщений: 23,654
Записей в блоге: 17
05.09.2012, 22:03 #3
Компилятор может просто произнорировать это слово...
А в других случах сам делать встраивание...

Так что это слово всего лишь пожелание для компилятора
1
OhMyGodSoLong
~ Эврика! ~
1243 / 992 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
05.09.2012, 22:04 #4
Много использования (жирных) инлайн функций — раздувается размер кода и этот код может не влезает в кеши. Вместо того, чтобы часто используемая функция лежала себе в уголке кеша и никого не трогала, её копии плавают по закешированной части программы, уменьшая полезный объём кеша и увеличивая количество промахов.
1
h3mbr0
228 / 71 / 16
Регистрация: 12.03.2012
Сообщений: 318
05.09.2012, 22:14  [ТС] #5
Цитата Сообщение от Петррр Посмотреть сообщение
Код inline функций подставляется на место вызова во время компиляции. Если функция большая и часто вызывается, то размер файла естественно увелится.
Это понятно, вопрос был какие еще минусы у использования таких функций

Цитата Сообщение от Avazart Посмотреть сообщение
Компилятор может просто произнорировать это слово...
А в других случах сам делать встраивание...
Так что это слово всего лишь пожелание для компилятора
Это мне известно, любые ключевые слова фукнции - лишь рекомендация, и хоть хороший компилятор сам решает что и как обрабатывать, различия хочется понимать самому

Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Много использования (жирных) инлайн функций — раздувается размер кода и этот код может не влезает в кеши. Вместо того, чтобы часто используемая функция лежала себе в уголке кеша и никого не трогала, её копии плавают по закешированной части программы, уменьшая полезный объём кеша и увеличивая количество промахов.
Спасибо, это уже понятнее) вопрос исчерпан
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2012, 22:14
Привет! Вот еще темы с ответами:

inline функции - C++
Объясните, пожалуйста, почему со всеми inline программа не работает, а если их закомментировать - работает. // main.cpp #include...

Inline функции - C++
Друзья!Инлайн функции могу быть определены только внтури класса?Или могут быть определены вне класса?Если вне,то как?Спасибо!

встроенные функции (inline) - C++
скажите что значит встроенные функции? не пойму. class a { int x,y; public: void get_x(int i,int j) //как я...

Inline функции в классах - C++
Недавно прочитал, что все функции которые определяются в классе по дефолту inline. Что меня настораживает так как мой ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.09.2012, 22:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru