Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 17.12.2013, 10:27   #1 (permalink)
Sandra 2000
Member
 
Аватар для Sandra 2000
 
Регистрация: 04.10.2012
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question С++ Использование inline функций

Помогите, пожалуйста Написать программу с использованием подставляемых функций и обычных функций, выполняющих одни и те же действия. С помощью системного таймера определить выигрыш во времени при использовании inline -функций. Буду благодарна за пояснения, потому что в этой теме
Sandra 2000 вне форума   Ответить с цитированием

Старый 17.12.2013, 10:27
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Вы можете прочитать схожие топики - это не займет много времени

20 новых функций iOS 7
Паскаль, подпрограммы функций
Использование библиотечных функций string.h
Aggressive inline
Си, вопросы насчет функций

Старый 17.12.2013, 19:27   #2 (permalink)
Gruvi
VIP user
 
Аватар для Gruvi
 
Регистрация: 10.03.2011
Сообщений: 766
Записей в дневнике: 1
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3453
По умолчанию

Вот на программу тебе ...
Цитата:
#include<iostream>
#include<stdio.h>
int maxo(int x, int y)
{
return(x>y)?x:y;
}
inline int maxi(int x, int y)
{
return(x>y)?x:y;
}
int main()
{
int i,j=5000,k, loop; // Непосредственное вычисление
for(loop=0;loop<100;loop++)
{
for(i=0;i<10000;i++)
{
k=(i>j)?i:j;
}
}
// Подставляемая функция
setlocale(LC_ALL, "Russian");
printf("Подставляемая функция\n\n");
for(loop=0;loop<100;loop++)
{
for(i=0;i<10000;i++) {
k=maxi(i,j);
}
}
//Неподставляемая функция
printf("Обычная функция\n\n"); for(loop=0;loop<100;loop++)
{
for(i=0;i<10000;i++)
{k=maxo(i,j);
}
}
system("pause");
return 0;
}
На всякий случай скажу сразу, что выигрыша никакого скорее всего не будет. Т.к. современные компиляторы настолько продвинутые, что им по большому счёту плевать, есть модификатор inline, или нет. Они (компиляторы) сами, никого не спрашивая, выполнят inline. Разницу, как правило, можно увидеть, используя компиляторы 20-25-летней давности, когда они ещё не были настолько умными
Gruvi вне форума   Ответить с цитированием
Старый 17.12.2013, 22:21   #3 (permalink)
Cassan
Member
 
Регистрация: 09.12.2013
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

так таймер вы всё равно не использовали, где он тут
Cassan вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 18:50.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.