Показать сообщение отдельно
Старый 17.12.2013, 19:27   #2 (permalink)
Gruvi
VIP user
 
Аватар для Gruvi
 
Регистрация: 10.03.2011
Сообщений: 765
Записей в дневнике: 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 вне форума   Ответить с цитированием
Ads

Яндекс

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