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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
#1

подставляемые функции - C++

05.09.2011, 20:03. Просмотров 1235. Ответов 12
Метки нет (Все метки)

Для этого кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
inline void f()
{
    std :: cout << "Inline function.\n";
}
 
int main()
{
    f();
    std :: cin.get();
    return 0;
}
посмотрел в Visual Studio дизассемблированный код.
Assembler
1
2
3
          f();
0014149E  call        f (141127h) 
          std :: cin.get();
почему осуществляется вызов функции f? или я что-то не так понял?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2011, 20:03     подставляемые функции
Посмотрите здесь:

Подставляемые значения - MS Access
Есть запрос Select Договора.Код_договора, Договора.Дата, Покупатели.КратИмя, Договора.СрокС, Договора.СрокПо From Договора RIGHT...

Функции. Как после одного возвратного значения функции отталкиваться от возврата другой функции - C++
Написал код, в котором 2 функции одна возвращает стринговое значение, вторая должна бы вернуть значение, отталкиваясь от первой. Возможно...

excel. создать таблицу значение кусочно-непрерывной функции y на интервале [xmin; xmax] с шагом h, для расчета функции y используя логические функции - Delphi


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pincet
1236 / 806 / 85
Регистрация: 23.07.2010
Сообщений: 4,108
05.09.2011, 20:05     подставляемые функции #2
компилятор так решил - так ему типа удобнее
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
05.09.2011, 20:07  [ТС]     подставляемые функции #3
pincet, но всё же, почему? в теле функции нет цикла, оно состоит из одной строчки.
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
05.09.2011, 20:07     подставляемые функции #4
Вообще inline вроде как просто рекомендация. Хотя тут ф-ция небольшая, не знаю, почему компилятор так решил.
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
05.09.2011, 20:08     подставляемые функции #5
stdcout, оптимизацию по скорости включал?
Enfernuz
22 / 22 / 1
Регистрация: 11.04.2011
Сообщений: 67
05.09.2011, 20:09     подставляемые функции #6
Да, не раз уже обсуждалось, что современные компиляторы сами решают, какие функции инлайнить, а какие нет Можно делать __forceinline (в VC++) или __inline__ (в GCC), но смысл? )
Bers
Заблокирован
05.09.2011, 20:10     подставляемые функции #7
inline - это не приказ компилятору, а лишь пожелание.
Он может и не инлайн заинлайнить) Если посчитает нужным. И наоборот - не все инлайн сделать инлайнами.
pincet
1236 / 806 / 85
Регистрация: 23.07.2010
Сообщений: 4,108
05.09.2011, 20:10     подставляемые функции #8
Цитата Сообщение от stdcout Посмотреть сообщение
pincet, но всё же, почему? в теле функции нет цикла, оно состоит из одной строчки.
хз. я компиляторы не пишу - я их пользую
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
05.09.2011, 20:12     подставляемые функции #9
Цитата Сообщение от Bers Посмотреть сообщение
Он может и не инлайн заинлайнить)
Так что тогда, стоит вообще забыть это слово - inline?
pincet
1236 / 806 / 85
Регистрация: 23.07.2010
Сообщений: 4,108
05.09.2011, 20:13     подставляемые функции #10
Цитата Сообщение от dihlofos Посмотреть сообщение
Так что тогда, стоит вообще забыть это слово - inline?
Все на асм 8)
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,823
Завершенные тесты: 2
05.09.2011, 20:32     подставляемые функции #11
Цитата Сообщение от dihlofos Посмотреть сообщение
Так что тогда, стоит вообще забыть это слово - inline
Нет. Включаем ту оптимизацию кода которая делает то что нужно с инлайнами.
Про gcc можно здесь посмотреть: http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
05.09.2011, 20:32  [ТС]     подставляемые функции #12
Enfernuz,
Можно делать __forceinline (в VC++) или __inline__ (в GCC), но смысл? )
Да я просто задание из книги Брюса Эккеля выполнял
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,823
Завершенные тесты: 2
05.09.2011, 20:39     подставляемые функции #13
Кстати, у компилятора от VC++ 2008 опция /O2 делает то что нужно.
Yandex
Объявления
05.09.2011, 20:39     подставляемые функции
Ответ Создать тему
Опции темы

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