Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
1

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

05.09.2011, 20:03. Просмотров 1407. Ответов 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? или я что-то не так понял?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2011, 20:03
Ответы с готовыми решениями:

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

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

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

А почему ошибка, что функции print и read не определены в функции main()?
Что-то не понимаю. Они определены в заголовочном файле. А подчеркивается...

решение задачи двумя способами без использования функции и с использованием функции
Помогите(( Вычислить значение: z = min(a,3b)*min(2a-b,2b) где...

12
pincet
1323 / 911 / 123
Регистрация: 23.07.2010
Сообщений: 4,939
05.09.2011, 20:05 2
компилятор так решил - так ему типа удобнее
0
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
05.09.2011, 20:07  [ТС] 3
pincet, но всё же, почему? в теле функции нет цикла, оно состоит из одной строчки.
0
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
05.09.2011, 20:07 4
Вообще inline вроде как просто рекомендация. Хотя тут ф-ция небольшая, не знаю, почему компилятор так решил.
1
grizlik78
Эксперт С++
1988 / 1480 / 192
Регистрация: 29.05.2011
Сообщений: 3,059
05.09.2011, 20:08 5
stdcout, оптимизацию по скорости включал?
1
Enfernuz
22 / 22 / 2
Регистрация: 11.04.2011
Сообщений: 67
05.09.2011, 20:09 6
Да, не раз уже обсуждалось, что современные компиляторы сами решают, какие функции инлайнить, а какие нет Можно делать __forceinline (в VC++) или __inline__ (в GCC), но смысл? )
1
Bers
Заблокирован
05.09.2011, 20:10 7
inline - это не приказ компилятору, а лишь пожелание.
Он может и не инлайн заинлайнить) Если посчитает нужным. И наоборот - не все инлайн сделать инлайнами.
1
pincet
1323 / 911 / 123
Регистрация: 23.07.2010
Сообщений: 4,939
05.09.2011, 20:10 8
Цитата Сообщение от stdcout Посмотреть сообщение
pincet, но всё же, почему? в теле функции нет цикла, оно состоит из одной строчки.
хз. я компиляторы не пишу - я их пользую
1
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
05.09.2011, 20:12 9
Цитата Сообщение от Bers Посмотреть сообщение
Он может и не инлайн заинлайнить)
Так что тогда, стоит вообще забыть это слово - inline?
1
pincet
1323 / 911 / 123
Регистрация: 23.07.2010
Сообщений: 4,939
05.09.2011, 20:13 10
Цитата Сообщение от dihlofos Посмотреть сообщение
Так что тогда, стоит вообще забыть это слово - inline?
Все на асм 8)
1
Евгений М.
1053 / 990 / 101
Регистрация: 28.02.2010
Сообщений: 2,876
Завершенные тесты: 2
05.09.2011, 20:32 11
Цитата Сообщение от dihlofos Посмотреть сообщение
Так что тогда, стоит вообще забыть это слово - inline
Нет. Включаем ту оптимизацию кода которая делает то что нужно с инлайнами.
Про gcc можно здесь посмотреть: http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
2
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
05.09.2011, 20:32  [ТС] 12
Enfernuz,
Можно делать __forceinline (в VC++) или __inline__ (в GCC), но смысл? )
Да я просто задание из книги Брюса Эккеля выполнял
0
Евгений М.
1053 / 990 / 101
Регистрация: 28.02.2010
Сообщений: 2,876
Завершенные тесты: 2
05.09.2011, 20:39 13
Кстати, у компилятора от VC++ 2008 опция /O2 делает то что нужно.
1
05.09.2011, 20:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2011, 20:39

Какое значение возвращают функции (в частности, логические функции) по умолчанию в Лазарус?
Я наткнулся на одну неприятность. До сих пор я считал, что result в функциях...

Для функции y=f(x)получить таблицу значений и график этой функции на отрезке.
Для функции y=f(x)получить таблицу значений и график этой функции на отрезке....

Как находясь в функции узнать имя данной функции? (Compact Framework)
Как находясь в функции узнать имя данной функции? Нашел несколько вариантов...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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