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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 5.00
downloadpascal
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 32
#1

встроенные функции (inline) - C++

12.06.2010, 14:09. Просмотров 3709. Ответов 4
Метки нет (Все метки)

скажите что значит встроенные функции?
не пойму.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class a
{
 int x,y;
   public:
       void get_x(int i,int j)       //как я понимаю это встроенная функция, а тогда что такое inline функция?
      {
         x = i;
         y = j;
      } 
      
      void inline get_x(int i,int j)  // это тоже , чтоли встроенная функция inline?
     {
        x= i;
        y = j;
     }
}
скажите пожалуйста, что такое встроенная функция inline? и зачем она нужна?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2010, 14:09     встроенные функции (inline)
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
12.06.2010, 14:28     встроенные функции (inline) #2
деректива inline говорит процессору что этот код нужно включать вместо названия самой функции
т.е.
вот это
C++
1
2
3
4
5
6
void inline get_x(int i,int j) // это тоже , чтоли встроенная функция inline?
{
x= i;
y = j;
}
};
если ты в майне напишешь
C++
1
get_x(int i,int j)
оно заменится на
C++
1
2
3
4
{
x= i;
y = j;
}
и везде будет заменяться, это нужно для ускорения работы программы, т.к. получается линейный код, а если функция не встроенная, то создается ссылка по которой должен идти процессор, т.е. затрачивается больше времени.... следующая команда идет не по порядку, а находится в определенном адресе...
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
12.06.2010, 15:39     встроенные функции (inline) #3
Mur3ik, + компилятор не всегда сделает функцию встроенной если там написано inline, зависит от тела функции ( есть ли там рекурсия циклы и т д) в общем встроенными лучше делать функии с маленьким телом.
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17184 / 5438 / 337
Регистрация: 30.03.2009
Сообщений: 14,742
Записей в блоге: 26
12.06.2010, 15:47     встроенные функции (inline) #4
Цитата Сообщение от Mur3ik Посмотреть сообщение
деректива inline говорит процессору что этот код нужно включать
Не нужно, а желательно. Т.е. на компилятор не накладываются никакие обязательства

По поводу inline можно немного почитать тут: Зачем нужен inline
Nick Alte
Эксперт С++
1599 / 991 / 117
Регистрация: 27.09.2009
Сообщений: 1,910
Завершенные тесты: 1
12.06.2010, 17:30     встроенные функции (inline) #5
Функции, объявленные внутри класса, тоже считаются инлайновыми. Даже если и не описывать их как inline. Что, разумеется, не помешает компилятору, если ему того захочется, сделать такую функцию неинлайновой. Более того, бывают случаи, когда одну и ту же функцию в одной и той же программе в одной точке вызова могут встроить, а в другой - нет.
Yandex
Объявления
12.06.2010, 17:30     встроенные функции (inline)
Ответ Создать тему
Опции темы

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