Читать «С++ для "чайников" .» онлайн - страница 229

Стефан Рэнди Дэвис

Dev-C++ может работать с файлами в сети, в отличие от консольного окна, так что вы сможете скомпилировать программу \\Randy\MyFolder\MyProgram.срр, но не сможете отладить полученный выполнимый файл.

►Включите заголовочные файлы в ваш проект...339

С++ позволяет вам собрать инструкции, расположенные в разных файлах, в одну программу при помощи директивы препроцессора #include. Никаких ограничений на то, что может содержаться в заголовочном файле, нет. Однако следует придерживаться определённых правил и размещать в заголовочных файлах только следующее.

■■■

■ Прототипы функций.

■ Определения классов.

■ Определения шаблонов всех видов.

■ Определения всех глобальных переменных.

■■■

Вы не должны включать в заголовочные файлы выполнимые команды ( за исключением функций, определённых внутри класса ). Не забудьте также добавить включаемый файл в список файлов проекта, даже если он не содержит исходный код. Включение заголовочных файлов в проект обеспечит автоматическое перекомпилирование проекта при внесении изменений в заголовочный файл.

►Работа с профайлером...339

При написании программы вы не должны слишком сосредотачиваться на том, насколько быстро она работает ( понятно, что это не значит понапрасну тратить процессорное время на никому не нужные задачи ). Само собой, в первую очередь следует заботиться об использовании быстрых и эффективных алгоритмов, соответствующих поставленной задаче. Например, нет смысла "вылизывать" код, который сортирует большой объём данных при помощи пузырьковой сортировки, поскольку это всё  равно не сделает его быстрее, чем при использовании алгоритма быстрой сортировки.

_________________

339 стр. . Десять основных возможностей Dev-C++

Однако если алгоритмические ресурсы исчерпаны, а программа работает слишком медленно, вам на помощь может прийти профайлер Dev-C++. Это инструмент, который выясняет, сколько времени затрачивает ваша программа на выполнение тех или иных действий, и позволяет вам сосредоточить свои усилия на наиболее "узком" месте программы.

Для включения профайлера воспользуйтесь командой меню Сервис => Параметры компилятора ( Tools => Compiler Options ), затем выберите вкладку Настройки ( Settings ), в левой части окна — Профилирование кода ( Code profiling ), а в правой установите опцию Генерировать профилирующую информацию для анализа ( Generate Profiling Info for Analysis ) равной Yes.

Давайте профилируем немного изменённую программу DeepCopy из .

    //

    /* DeepCopy — программа для демонстрации профилирования */

    //

    #include <cstdio>

    #include <cstdlib>

    #include <iostream>

    #include <strings.h>

    using namespace std ;

    class Person

    {

      public :

        Person( char *pN )

        {

            pName = new char[ strlen( pN ) + 1 ] ;

            if ( pName != 0 )