• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

С++ Использование inline функций

Sandra 2000

Новые
Регистрация
4 Окт 2012
Сообщения
49
Реакции
0
Баллы
0
С++ Использование inline функций

Помогите, пожалуйста Написать программу с использованием подставляемых функций и обычных функций, выполняющих одни и те же действия. С помощью системного таймера определить выигрыш во времени при использовании inline -функций. Буду благодарна за пояснения, потому что в этой теме :tehnari_ru_211:
 
Вот на программу тебе ...
#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-летней давности, когда они ещё не были настолько умными
 
так таймер вы всё равно не использовали, где он тутtehno036
 
Назад
Сверху