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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 5.00
downloadpascal
0 / 0 / 0
Регистрация: 15.05.2010
Сообщений: 32
12.06.2010, 14:09     встроенные функции (inline) #1
скажите что значит встроенные функции?
не пойму.
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)
Посмотрите здесь:

Встроенные функции в компилятор C++
C++ Встроенные функции
C++ inline функции vs инструкции inline функций
inline функции C++
Встроенные функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
}
и везде будет заменяться, это нужно для ускорения работы программы, т.к. получается линейный код, а если функция не встроенная, то создается ссылка по которой должен идти процессор, т.е. затрачивается больше времени.... следующая команда идет не по порядку, а находится в определенном адресе...
Андрейка
410 / 214 / 24
Регистрация: 25.03.2009
Сообщений: 716
12.06.2010, 15:39     встроенные функции (inline) #3
Mur3ik, + компилятор не всегда сделает функцию встроенной если там написано inline, зависит от тела функции ( есть ли там рекурсия циклы и т д) в общем встроенными лучше делать функии с маленьким телом.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,136
Записей в блоге: 26
12.06.2010, 15:47     встроенные функции (inline) #4
Цитата Сообщение от Mur3ik Посмотреть сообщение
деректива inline говорит процессору что этот код нужно включать
Не нужно, а желательно. Т.е. на компилятор не накладываются никакие обязательства

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

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