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

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

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

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

05.09.2011, 20:03. Просмотров 1281. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос подставляемые функции (C++):

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

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

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

Используя перегруженные функции и шаблон функции удалить из массива элемент по индексу - C++
Стоит следующая задача: Используя перегруженные функции и шаблон функции удалить из массива элемент по индексу. Функцию написал, но я...

Вычислить где значение функции меняет знак(отделение корней функции) - C++
Имеется следующая функция f(x)=sqrt(4*x+7)-3*cos(x) Нужно написать программу, где будет выводится таблица, где будет видно при каком...

Найти среднее арифметическое значений функции f(x) в точках a, b, (a+b)/2 используя обращение к функции - C++
А этой нету: 3.Найти среднее арифметическое значений функции f(x) в точках a, b, (a+b)/2 используя обращение к функции f=(x*sin⁡ π/4) /...

12
pincet
1245 / 817 / 90
Регистрация: 23.07.2010
Сообщений: 4,193
05.09.2011, 20:05 #2
компилятор так решил - так ему типа удобнее
0
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
05.09.2011, 20:07  [ТС] #3
pincet, но всё же, почему? в теле функции нет цикла, оно состоит из одной строчки.
0
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
05.09.2011, 20:07 #4
Вообще inline вроде как просто рекомендация. Хотя тут ф-ция небольшая, не знаю, почему компилятор так решил.
1
grizlik78
Эксперт С++
1956 / 1449 / 115
Регистрация: 29.05.2011
Сообщений: 3,007
05.09.2011, 20:08 #5
stdcout, оптимизацию по скорости включал?
1
Enfernuz
22 / 22 / 1
Регистрация: 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
1245 / 817 / 90
Регистрация: 23.07.2010
Сообщений: 4,193
05.09.2011, 20:10 #8
Цитата Сообщение от stdcout Посмотреть сообщение
pincet, но всё же, почему? в теле функции нет цикла, оно состоит из одной строчки.
хз. я компиляторы не пишу - я их пользую
1
dihlofos
Бродяга
303 / 257 / 17
Регистрация: 27.08.2010
Сообщений: 553
05.09.2011, 20:12 #9
Цитата Сообщение от Bers Посмотреть сообщение
Он может и не инлайн заинлайнить)
Так что тогда, стоит вообще забыть это слово - inline?
1
pincet
1245 / 817 / 90
Регистрация: 23.07.2010
Сообщений: 4,193
05.09.2011, 20:13 #10
Цитата Сообщение от dihlofos Посмотреть сообщение
Так что тогда, стоит вообще забыть это слово - inline?
Все на асм 8)
1
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 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
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
05.09.2011, 20:39 #13
Кстати, у компилятора от VC++ 2008 опция /O2 делает то что нужно.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2011, 20:39
Привет! Вот еще темы с ответами:

Табулирование заданной функции и определение максимального и минимального значения функции в таблице - C++
Разработать консольное приложение, производящее табулирование заданной функции и определение максимального и минимального значения функции...

Процедуры и функции: вычислить значения функции на заданном отрезке с заданным шагом - Pascal
ребята, помогите, пожалуйста! Срочно нужна такая программка по выделенному варианту... у самой никак не получается( очень рассчитываю...

Для заданной функции f=Sin(2.8*x^2)+sqrt(1.2*x) вывести на экран значения функции - Turbo Pascal
Для заданной функции f=Sin(2.8*x^2)+sqrt(1.2*x) вывести на экран значения функции,которые лежат в пределах от -1 до 2 и соответствующие им...

Нестандартный вопрос.Как получить доступ к переменным функции из другой функции? - PHP
&lt;?php declare(ticks=1); function tick_handler() { print_r($_GLOBALS);//Печатает все переменные в области видимости кода вне функции...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
05.09.2011, 20:39
Ответ Создать тему
Опции темы

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