corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Внесение изменений и переходы в файлах исходных кодов на C/C++ - учебный курс по среде IDE NetBeans 6.9

В настоящем кратком учебном курсе описываются некоторые возможности перехода по файлам исходных кодов и внесению изменений в них в проекте на языке C или C++ в среде IDE NetBeans 6.9.

Содержание

Содержимое этой страницы относится к среде IDE NetBeans 6.9
Требования
Создание примера проекта
Изменение исходных файлов на языке C и C++
Переход по файлам исходных кодов на языке C и C++
Что дальше?

Требования

Для работы с этим учебным курсом требуется следующее программное обеспечение и материалы.

Программное обеспечение или материал Требуемая версия
Среда IDE NetBeans , версия 6.9 с подключаемым модулем C/C++ для NetBeans
Комплект для разработчика на языке Java (JDK) версия 6
Компиляторы C и C++, make, gdb Наборы средств C/C++, протестированные со средой IDE NetBeans

См. разделы Указания по установке среды IDE NetBeans 6.9 и Настройка среды IDE NetBeans для C/C++/Фортран
для получения информации о загрузке и установке требуемого программного обеспечения.

Примеры проектов

Чтобы поэкспериментировать с проектами, выберите в среде IDE команду "Файл" > "Новый проект", а затем откройте категорию "Примеры" и подкатегорию "C/C++". В среде IDE представлено несколько примеров проектов на языке C и C++, которые помогут ознакомиться с функциями среды.

Создание примера проекта

Среда IDE NetBeans 6.9 с подключаемым модулем C/C++ предоставляет расширенные возможности изменения исходного кода. Для наглядного рассмотрения этих функций в этом учебном курсе используется проект Quote. Если проект еще не создан, выполните следующие действия:

  1. Выберите "Файл" > "Новый проект".
  2. Разверните в мастере создания проекта категорию "Примеры" и выберите подкатегорию "C/C++".
  3. Выберите проект Quote. Нажмите кнопку "Далее", а затем нажмите кнопку "Готово".

Изменение исходных файлов на языке C и C++

Установка стиля форматирования

Окно "Параметры" по умолчанию используется для настройки стиля форматирования проектов на языке C и C++.
  1. Выберите команду "Средства" > "Параметры".
  2. Нажмите элемент "Редактор" на верхней панели окна.
  3. Выберите вкладку "Форматирование".
  4. Выберите в раскрывающемся списке "Язык" язык C++, поскольку в проекте Quote используется язык C++.
  5. Выберите в раскрывающемся списке "Стиль" необходимый стиль.

  6. Снимок экрана: вкладка "Стили форматирования"

  7. Измените свойства стиля требуемым образом.

Свертывание блоков кода в файлах C и C++

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

  1. Откройте в проекте приложения Quote_1 папку "Source Files" и дважды щелкните файл cpu.cc, чтобы открыть его в редакторе исходного кода.
  2. Щелкните в левом поле значок свертывания (небольшое поле со знаком "-"), чтобы свернуть код одного из методов.
  3. Наведите курсор на символ {...} справа от свернутого блока для отображения кода блока.

  4. Снимок экрана: свернутый код в окне редактора исходного кода

Использование семантического выделения

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

  1. Выберите команду "Сервис" > "Параметры".
  2. Щелкните элемент "C/C++" на верхней панели окна.
  3. Выберите вкладку "Выделение".
  4. Убедитесь, что все флажки установлены.
  5. Нажмите кнопку "ОК".
  6. Обратите внимание, что в файле customer.cc проекта Quote_1 имена методов выделены жирным.
  7. Щелкните вхождение класса Customer.
  8. Все вхождения класса Customer в файле будут выделены желтым цветом. В правом поле также отображаются отметки, указывающие расположение вхождений в файле. Отметки позволяют оценить число вхождений в файле без прокручивания. Чтобы перейти ко вхождению, следует щелкнуть необходимую отметку.
  9. Для легкого перехода между вхождениями нажимайте клавиши Alt+Down, чтобы перейти к следующему вхождению, и Alt+Up, чтобы перейти к предыдущему вхождению.
  10. Снимок экрана: файл с выделенным классом в редакторе исходного кода
  11. Откройте файл customer.h, расположенный в папке "Headers", и обратите внимание, что имена методов снова выделены жирным.
  12. Снимок экрана: файл с выделенными полями класса в редакторе исходного кода

Работа с автозавершением кода и документированием

Среда IDE имеет функцию динамического автозавершения кода на языке C и C++, благодаря которой при вводе одного или нескольких символов выводится список возможных классов, методов, переменных и т.д., которые можно использовать для завершения выражения.

Также в среде IDE выполняется динамический поиск документации классов, функций, методов и пр., а также отображение документации во всплывающем окне.

  1. Откройте файл в проекте Quote_1 quote.cc.
  2. Введите в первой пустой строчке файла quote.cc заглавную латинскую букву "C" и нажмите сочетание клавиш CTRL+ПРОБЕЛ. Появится окно автозавершения кода с небольшим списком, включающем классы Cpu и Customer. Также отобразится окно документации с сообщением "Документация не найдена", поскольку исходный код проекта не содержит документации по коду.
  3. Разверните список элементов, снова нажав CTRL+ПРОБЕЛ.

  4. Снимок экрана: окно автозавершения кода
  5. Используйте клавиши со стрелками или кнопки мыши для выделения стандартной функции библиотеки (например, calloc). В окне документации появится страница системной справки для этой функции, если эта страница доступна для среды IDE.

  6. Снимок экрана: документация по автозавершению кода
  7. Выберите класс Customer и нажмите клавишу ВВОД.
  8. Заполните новый экземпляр класса Customer, введя текст andrew;. Введите в следующей строке латинскую букву a и нажмите CTRL+ПРОБЕЛ. Появится окно автозавершения кода со списком возможных элементов с начальной буквой a, например аргументы метода, поля класса и глобальные имена, доступные в текущем контексте.
  9. Снимок экрана: окно автозавершения кода
  10. Дважды щелкните параметр andrew, чтобы принять его и ввести после него точку. Автоматически предоставляется список общедоступных методов и полей класса Customer.
  11. Снимок экрана: окно автозавершения кода
  12. Удалите добавленный код.

Добавление документации к исходному коду

Можно добавить в код комментарии для автоматического создания документации к функциям, классам и методам. Среда IDE распознает комментарии с синтаксисом Doxygen и автоматически создает документацию. Также среда IDE может автоматически создавать блок комментариев для документирования функции под комментарием.

  1. Наведите курсор в файле quote.cc на строку 74 или на строку, расположенную выше.
    int readNumberOf(const char* item, int min, int max) {
  2. Введите косую черту и две звездочки, а затем нажмите клавишу ВВОД. В редакторе будет вставлен комментарий в формате Doxygen для класса readNumberOf. Снимок экрана: автоматическое создание комментариев Doxygen
  3. Добавьте текст описания в каждую строку аннотации @param и сохраните файл.
  4. Пока класс readNumberOf выделен желтым, щелкните одну из отметок вхождений справа для перехода к области использования класса.
  5. Снимок экрана: измененные комментарии Doxygen
  6. Щелкните класс readNumberOf в строке, к которой выполнен переход, и нажмите сочетание клавиш CTRL+SHIFT+ПРОБЕЛ для отображения документации, добавленной для параметров.
  7. Снимок экрана: отображение документации Doxygen
  8. Щелкните в любом месте файла, чтобы закрыть окно документации, а затем щелкните класс readNumberOf повторно.
  9. Используйте параметр меню "Исходный код" > "Показать документацию", чтобы снова открыть окно документации для класса.

Использование шаблонов кода

В редакторе исходного кода существует набор настраиваемых шаблонов кода со стандартными фрагментами кода на C и C++. Можно создать полный фрагмент кода путем ввода его сокращения и нажатия клавиши Tab. Например в файле quote.cc проекта Quote:

  1. Введите uns с последующим нажатием клавиши Tab, и uns развернется до unsigned.
  2. Введите iff с последующим нажатием клавиши Tab, и iff развернется до if (exp) {}.
  3. Введите ife с последующим нажатием клавиши Tab, и ife развернется до if (exp) {} else {}.
  4. Введите fori с последующим нажатием клавиши Tab, и fori развернется до for (int i = 0; i < size; i++) { Object elem = array[i];.

Можно просматривать все доступные шаблоны кода, изменять их и создавать собственные. Также можно выбрать другую клавишу для развертки шаблонов кода. Выберите меню "Сервис" > "Параметры" > "Редактор" > "Шаблоны кода", а затем выберите соответствующий язык.

Подстановка парных символов

При редактировании исходных файлов на языках C и C++ редактор исходного кода выполняет "интеллектуальную" подстановку парных символов, например кавычек, круглых и квадратных скобок. При вводе одного из символов редактор исходного кода автоматически подставляет закрывающий символ.

  1. В проекте Quote_1 разместите курсор в строке 115 файла module.cc после символа { и нажмите клавишу ВВОД для перехода в новую строку.
  2. Введите enum state { и нажмите клавишу ВВОД. Закрывающая фигурная скобка и точка с запятой будут добавлены автоматически, а курсор будет размещен в строке между скобками.
  3. Введите invalid=0, success=1 для завершения перечисления.
  4. Введите в строке после закрывающей скобки }; перечисления текст if (. Закрывающая круглая скобка будет добавлена автоматически, а курсор будет размещен между скобками.
  5. Введите v==null. Затем введите { и добавьте новую строку после правой круглой скобки. Закрывающая квадратная скобка будет добавлена автоматически.
  6. Удалите добавленный код.

Переход по исходным файлам на C и C++

Среда IDE NetBeans IDE 6.9 с подключаемым модулем C/C++ предоставляет новые возможности перехода для просмотра исходного кода. Для исследования этих функций по-прежнему используется проект Quote_1.

Использование окна классов

Окно классов позволяет просматривать все классы проекта, а также члены и поля каждого класса.

  1. Выберите вкладку "Классы" для просмотра окна классов. Если вкладка "Классы" недоступна, выберите команду "Окно" > "Классы"
  2. Разверните узел Quote_1 в окне классов. Выводится список всех классов проекта.
  3. Разверните класс Customer.

  4. Снимок экрана: вкладка "Представление классов"

  5. Дважды щелкните переменную name, чтобы открыть файл заголовка customer.h.

Использование окна навигатора

Окно навигатора предоставляет компактное представление выбранного в настоящий момент файла и упрощает процедуру перехода между различными частями файла. Если окно навигатора не отображается, выберите команду "Окно" > "Навигация" > "Навигатор", чтобы открыть его.

  1. Щелкните в любом месте окна редактора файла quote.cc.
  2. В окне навигатора отобразится компактное представление файла.
  3. Снимок экрана: окно навигатора
  4. Для перехода к определенному элементу файла дважды щелкните его в окне навигатора, а курсор в окне редактора переместится к этому элементу.
  5. Щелкните правой кнопкой мыши в окне навигатора, чтобы выбрать другой способ сортировки элементов, группировку элементов или их фильтрацию.
  6. Для получения сведений о назначении значков в окне навигатора воспользуйтесь интерактивной справкой по среде IDE. Для этого выберите команду "Справка" > "Содержание справки" и введите в поле поиска окна справки "значки навигатора".

Поиск мест использования класса, метода и поля

Окно "Случаи использования" применяется для просмотра класса (структуры), функции, переменной, макроса или файла, которые используются в исходном коде проекта.

  1. Щелкните правой кнопкой мыши в файле customer.cc класс Customer в строке 44, и выберите команду "Найти случаи использования".
  2. Нажмите в диалоговом окне "Найти случаи использования" кнопку "Найти".
  3. Появится окно "Случаи использования" со случаями использования класса Customer в исходных файлах проекта.
  4. Снимок экрана: окно "Случаи использования"

Работа с графиком вызовов

В окне "Граф вызовов" отображаются два представления отношений вызовов между функциями проекта. В древовидном представлении отображаются функции, вызванные из выбранной функции, или функции, вызывающие выбранную функцию. Графическим представлением отношений вызовов служат стрелки между вызываемыми и вызывающими функциями.

  1. Щелкните правой кнопкой мыши функцию main в файле quote.cc и выберите команду "Показать график вызовов".
  2. Откроется окно "Граф вызовов" с деревом и графическим представлением всех функций, вызванных из функции main.
  3. Снимок экрана: окно "Граф вызовов"

    Если отображаются не все функции, приведенные на рисунке выше, нажмите в окне "Граф вызовов" третью кнопку слева для вывода элементов, вызванных из данной функции.

  4. Разверните узел endl для отображения функций, вызванных этой функцией. Обратите внимание, что график обновляется для дополнительного вывода функций, вызванных функцией endl.
  5. Нажмите в окне вторую кнопку слева для перемещения фокуса к функции endl, затем нажмите четвертую кнопку, чтобы просмотреть все изменения функций, вызывающих функцию endl.
  6. Разверните несколько узлов дерева для просмотра большего числа функций.
  7. Снимок экрана: окно "Граф вызовов"

Работа с гиперссылками

Функция перехода по гиперссылкам позволяет переходить от вызова класса, метода, переменной или константы к их объявлению и от объявления к определению. Кроме того, гиперссылки позволяют переходить от переопределяемого метода к переопределяющему и наоборот.

  1. В файле cpu.cc проекта Quote_1 наведите курсор мыши на строку 36, нажав клавишу CTRL. Функция ComputeSupportMetric будет выделена, а в аннотации будут выведены сведения о данной функции.
  2. Снимок экрана: вызов функции с аннотацией
  3. Щелкните гиперссылку, и в окне редактора будет выполнен переход к определению функции.
  4. Снимок экрана: определение функции
  5. Наведите курсор на определение, нажав клавишу CTRL, и щелкните ссылку. В редакторе будет выполнен переход к объявлению функции в файле заголовка cpu.h.
  6. Снимок экрана: объявление функции
  7. Нажмите на панели редактора стрелку влево (выделенную на снимке), и редактор снова перейдет к определению в файле cpu.cc.
  8. Наведите курсор мыши на зеленый круг в левом поле и просмотрите аннотацию, указывающую, что данный метод переопределяет другой метод.
  9. Снимок экрана: аннотация переопределения
  10. Щелкните зеленый круг для перехода к переопределенному методу: будет выполнен переход к файлу заголовка module.h. В это файле на полях отображается серый круг, указывающий на то, что метод переопределен.
  11. Щелкните серый круг, и в окне редактора появится список методов, переопределяющих этот метод.
  12. Снимок экрана: переопределяющие методы
  13. Щелкните элемент Cpu::ComputeSupportMetric для обратного перехода к объявлению метода в файле заголовка cpu.h.

Работа с иерархией include

Окно "Иерархия include" позволяет просматривать все файлы заголовков и исходные файлы, которые напрямую или косвенно включены в исходный файл, или все исходные файлы и файлы заголовков, которые напрямую или косвенно включают по #include файл заголовка.

  1. Откройте в проекте Quote_1 в окне редактора файл module.cc.
  2. Щелкните правой кнопкой мыши строку #include "module.h" в файле и выберите команду "Переход" > "Просмотреть иерархию include".
  3. По умолчанию окно "Иерархия" представляет собой список файлов, напрямую включающих файл заголовка. Нажмите крайнюю правую кнопку в нижней части окна для изменения представления на древовидное. Нажмите вторую кнопку справа, чтобы изменить представление для всех включаемых и включающих файлов. Разверните узлы дерева для просмотра всех исходных файлов, включающих файл заголовка.
  4. Снимок экрана: иерархия include

Работа с иерархией типов

Окно "Иерархия типов" позволяет проверять все подтипы и родительские типы класса.

  1. Откройте в проекте Quote_1 файл module.h.
  2. Щелкните правой кнопкой мыши объявление класса Module и выберите "Переход" > "Просмотреть иерархию типов".
  3. Окно иерархии содержит все подтипы класса Module.
  4. Снимок экрана: иерархия типов

Следующие действия

В разделе Отладка проектов на языках C/C++ можно ознакомиться с учебным курсом по работе с некоторыми функциями отладки проекта на языке C или C++ в среде IDE NetBeans.