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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки http://www.cyberforum.ru/cpp-beginners/thread136784.html
День добрый! Хотел спросить, как мне очистить массив строк???? Просьба...очистка должна быть такого же уровня, как и эта программа(простая).Спасибо! #include "stdafx.h" #include <iostream>...
C++ Pacman Здравствуйте,пишу курсовик,взял игру pacman. Реализовал ее почти,пекмен ходит и кушает по карте.Теперь встал вопрос,как сделать призраков,которые как-то будут ходить сами.Подскажите алгоритм,а если... http://www.cyberforum.ru/cpp-beginners/thread136778.html
C++ Создание dll c процедурами для зануления елементов матрици,какую можна будут использивать в Delphi
Есть така задачка "на с++ создать библиотеку dll которая будет содержать две функции зануления парних и непарних елементов масиву длини n.Cделать консольний проект в Delphi (компилятор Delphi,...
Библиотека STL, класс ЛИСТ C++
Прив Всем! Нужна помощь... вот задание: ========================================================================== Используй класс list библиотеки STL для хранения информации о студентах....
C++ Вылезает ошибка! http://www.cyberforum.ru/cpp-beginners/thread136740.html
// Test.cpp: главный файл проекта. #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void func(char*);
C++ Двухмерный масив Всем привет!) Вот задали задачку.. никак не могу ее решить...(( Кто может помогите...)) буду благодарен..)) Условие: Из двухмерного массива Асоздать массив K элементами которого являются... подробнее

Показать сообщение отдельно
Andrew_Lvov
Эксперт С++
259 / 189 / 5
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
20.09.2010, 12:37
griseus, директива inline просит компилятор сгенерировать код этой ф-ции в месте её вызова (вместо самого вызова). Очевидно, что бы компилятор мог это сделать, код inline ф-ции должен быть в той же единице трасляции, что и место вызова. Иными словами, если некий код в файле cpp делает вызов ф-ции swap, что эта ф-ция должна быть определена (не оглашена, а полностью определена) в том же cpp файле либо в файле, к-рый подключается через #include директиву.

Есть ограничения, в силу к-рый компилятор не сможет сделать ф-цию встроенной (inline) - наличие статических переменных в ф-ции, вроде бы даже переменные в стеке. Так же рекурсивные ф-ции.

Основное преимущество inline ф-ции - при небольшом обьёме она выполниться быстрее, чем вызов.
Причин несколько, среди них - так называемый cache miss, то есть во время вызова ф-ции может оказаться, что она в другой странице памяти, к-рая не находиться в кеше. Когда же код встроенной ф-ции находится рядом, его не надо искать и всё такое.

Лучшимы кандидатами на inline ф-ции являются getter'ы и setter'ы.

И да, методы класса, определённые внутри определения класса, по-умолчанию считаются inline.

UPD: Все размышления являются моим собственным мнением и кое-где могу быть не совсем прав.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.