В меню можно добавить любое количество справочных файлов.
_________________
338 стр. Часть 6. Великолепная десятка
►Переустановка точек останова после редактирования файла...339
Dev-C++ устанавливает точки останова, основываясь на номерах строк исходного текста. К сожалению, он не перемещает точки останова автоматически при вставке или удалении строк в исходном файле. Предположим, например, что я установил точку останова в 10 строке моей программы. Если после этого я добавлю комментарий между 9 и 10 строками, точка останова будет указывать на этот комментарий. Понятно, что комментарий не выполняется, так что данная точка останова теряет смысл.
Не забывайте переустанавливать точки останова после редактирования исходных файлов.
►Избегайте некорректных имён файлов...339
В плане использования имён файлов Dev-C++ не совсем корректная программа. В случае неверного имени файла компилятор генерирует сообщения об ошибках, которые способны только ввести в заблуждение. Кроме того, Dev-C++ не в состоянии работать с именами файлов и папок, которые содержат пробелы в имени.
Dev-C++ может работать с файлами в сети, в отличие от консольного окна, так что вы сможете скомпилировать программу \\Randy\MyFolder\MyProgram.срр , но не сможете отладить полученный выполнимый файл.
►Включите заголовочные файлы в ваш проект...339
С++ позволяет вам собрать инструкции, расположенные в разных файлах, в одну программу при помощи директивы препроцессора #include . Никаких ограничений на то, что может содержаться в заголовочном файле, нет. Однако следует придерживаться определённых правил и размещать в заголовочных файлах только следующее.
■■■
■ Прототипы функций.
■ Определения классов.
■ Определения шаблонов всех видов.
■ Определения всех глобальных переменных.
■■■
Вы не должны включать в заголовочные файлы выполнимые команды ( за исключением функций, определённых внутри класса ). Не забудьте также добавить включаемый файл в список файлов проекта, даже если он не содержит исходный код. Включение заголовочных файлов в проект обеспечит автоматическое перекомпилирование проекта при внесении изменений в заголовочный файл.
►Работа с профайлером...339
При написании программы вы не должны слишком сосредотачиваться на том, насколько быстро она работает ( понятно, что это не значит понапрасну тратить процессорное время на никому не нужные задачи ). Само собой, в первую очередь следует заботиться об использовании быстрых и эффективных алгоритмов, соответствующих поставленной задаче. Например, нет смысла "вылизывать" код, который сортирует большой объём данных при помощи пузырьковой сортировки, поскольку это всё равно не сделает его быстрее, чем при использовании алгоритма быстрой сортировки.
_________________
339 стр. Глава 30. Десять основных возможностей Dev-C++
Однако если алгоритмические ресурсы исчерпаны, а программа работает слишком медленно, вам на помощь может прийти профайлер Dev-C++. Это инструмент, который выясняет, сколько времени затрачивает ваша программа на выполнение тех или иных действий, и позволяет вам сосредоточить свои усилия на наиболее "узком" месте программы.
Для включения профайлера воспользуйтесь командой меню Сервис => Параметры компилятора( Tools => Compiler Options), затем выберите вкладку Настройки( Settings), в левой части окна — Профилирование кода( Code profiling), а в правой установите опцию Генерировать профилирующую информацию для анализа( Generate Profiling Info for Analysis) равной Yes.
Давайте профилируем немного изменённую программу DeepCopy из главы 18, "Копирующий конструктор".
//
/* DeepCopy — программа для демонстрации профилирования */
//
#include
#include
#include
#include
using namespace std ;
class Person
{
public :
Person( char *pN )
{
pName = new char[ strlen( pN ) + 1 ] ;
if ( pName != 0 )
{
strcpy( pName , pN ) ;
}
}
Person( Person & p )
{
pName = new char[ strlen( p.pName ) + 1 ] ;
if ( pName != 0 )
{
strcpy( pName , p.pName ) ;
}
}
~Person( )
{
delete pName ;
pName = 0 ;
}
protected :
char *pName ;
} ;
_________________
340 стр. Часть 6. Великолепная десятка
void fn1( Person & p )
Читать дальше