Реферат: С/C++

time_t t,t2;

t = time(NULL);

randomize();

//Многократное присвоение случайному элементу случайного значения

for (i=1;i<429496;i++)

ar[random(1000)]=random (32767);

//Многократное заполнение

массива числом 2

for (i=1;i<429496;i++)

ar[i%(1000)]=2;

t2 = time(NULL);

printf("Время выполнения= %d",t2 - t);

}

Как видно, программа очень интенсивно работает с массивом и контроль за выход границ массива должен, вероятно, замедлить работу. Ведь на каждое присвоение приходится проверка индекса массива.

Выводы могут оказаться для кого - то неожиданными:

Версия на C не показала более высокого быстродействия по сравнению с Pascal версией.

Быстродействия Pascal версии при отключении всех проверок увеличивалось на 7 - 8%.

Что вполне логично, т.к. проверка у процессоров 80x86 реализуются на аппаратном уровне. А прирост в 7 - 8% может дать использование компилятора с хорошей оптимизацией.

По данным Дмитрия Беленко, основанным на проводимом им эксперименте, разница между Delphi и C++ Builder даже вычислительных задачах составляет 4 - 5% .

Замечу что существует и с специальный проект Cyclone. Его разработчики - Корнельский университет и AT&T. Язык фактически представляет Си с проверкой потенциально опасных ситуаций, таких как переполнение буфера. В дистрибутив входит программа преобразования программ из Си в Cyclone которая может отыскать и найти потенциально опасные места программы. Основная цель разработчиков - создать язык пригодный для программирования безопасных приложений.

После появления и распространения ООП львиная доля С программистов перешли на С++ . В этом(и большом обьеме ПО уже написанном на С) я вижу одну из основных причин его распространенности.

Отмечу что и C++ повлиял на C. К примеру enum С получил от С++, и при программировании на С он практически не используется, однако было отмечено, что С содержит такую конструкцию, поскольку она есть в ныне действующем стандарте языка.

В языке появились:

классы (classes);

шаблоны (templates);

пространства имен (namespaces);

перегрузка (overload);

потоки (streams);

исключения (exception)

К-во Просмотров: 998
Бесплатно скачать Реферат: С/C++