Страница 11 из 69
В ходе исправления ошибок обычно добавляется и удаляется
текст. Редактор отслеживает эти действия: когда вы переходите к
следующей ошибке, он правильно устанавливает курсор на ошибке.
Поэтому вам нет необходимости запоминать номера строк или считать
добавленные или удаленные строки текста.
- 85,86 -
Обнаружение ошибок времени выполнения
интегрированным отладчиком
----------------------------------------------------------------
Если вы обнаружили уже все ошибки, то ваша программа будет
откомпилированна без проблем. Однако при этом может остаться не-
выполнимой, т. к. может содержать логические (времени выполнения)
ошибки. Средства обнаружения синтаксических ошибок не помогут в
этом случае.
Для обнаружения ошибок времени выполнения ТС включает в себя
интегрированный отладчик. Вы можете запустить свою программу на
выполнение из отладчика, остановить ее в любой точке, проверить
значения переменных и даже изменить их значения для проверки ка-
ким образом ваша программа будет на это реагировать. Для обучения
работе с интегрированным отладчиком ТС читайте главу 4 данного
руководства.
Использование нескольких исходных файлов
----------------------------------------------------------------
Одним из преимуществ Турбо Си является возможность раздель-
ной компиляции нескольких исходных файлов. К тому же сервис
Project-Make по управлению разработкой на Турбо Си, делает эту
возможность еще более привлекательной.
В предыдущем примере в главе 2 имелся только один исходный
файл, поэтому можно было использовать Compile/Make для создания
выполняемой программы без определения файла проекта. Однако при
построении программы из нескольких исходных файлов Си необходимо
точно сообщить Турбо Си, какие файлы используются, т.е. создать
файл проекта.
Создание файла проекта также просто, как перечисление имен
ваших исходных файлов на Си. В дальнейшем вы увидете, что можете
вложить большую мощь в создание проекта, а сейчас, давайте начнем
с простого - с двухфайловой программы.
В обычном случае лучше иметь файл с главной программой и
вспомогательный файл с определениями функций и данных, вызываемых
- 87,88 -
из главной программы. Например, главный файл MYMAIN.C может выг-
лядеть таким образом:
#include
держит две строки с названиями файлов, которые нужно откомпилиро-
вать и скомпоновать. Назовем файл проекта MYPROC.PRJ. Он выглядит
так:
mymain
myfuncs
Вот и все. Турбо Си считает, что любой файл без расширения
является .С файлом (хотя вы можете явно задать - .С). Кроме того,
порядок указания файлов не имеет значения, он влияет лишь на по-
рядок компиляции. Следующий файл проекта приведет к тому же ко-
нечному результату:
- 89,90 -
myfuncs
mymain
Теперь сохраните ваш файл как MYPROG.PRJ (выберите Write из
меню File).
Заметим, что имя файла проекта (MYPROG.PRJ) отличается от
имени главного файла (MYMAIN.C). Два имени (но не расширения) мо-
гут быть одинаковыми, однако это не обязательно. Важно запомнить,
что имя вашего выполняемого файла (а также имя любого MAP файла,
создаваемого компоновщиком) будет определяться именем файла про-
екта. В нашем случае выполняемым файлом будет MYPROG.EXE (а MAP
файлом, если таковой имеется - MYPROG.MAP).
Заметим также, что вы можете указывать маршрут к любому фай-
лу, перечисленному в файле проекте. Таким образом, вы можете соз-
давать программу не только из файлов, расположенных в одном и том
же каталоге.
Создание программы из нескольких исходных файлов
----------------------------------------------------------------
Теперь, когда у вас есть файл проекта, все, что вам необхо-
димо сделать - это сообщить Турбо Си, какой проект вы хотите
построить. Для этого введите имя файла проекта в меню работы с
проектом. Нажмите ALT-P для входа в меню Project и выберите пункт
Project name (имя проекта). Вы можете явно ввести имя вашего фай-
ла или можете воспользоваться символами маскирования (? и *) для
нахождения его в каталоге. (Но помните, если вы не сохранили
файл, то его нет на диске.) Когда имя проекта введено, вы можете
просто нажать F9 (Make) для создания выполняемого файла. Для за-
пуска необходимо нажать Ctrl-F9 (Run/Run).
Заметим, что запуск программы включает в себя и ее создание
"make". Это значит, что, если файлы в проекте должны быть пере-
компилированы, то нажатие Ctrl-F9 может начать процесс компиляции
и компоновки. Таким образом, вы можете опустить явный вызов make
(F9). Выберите Run/User screen ( или нажмите Alt-F5) для просмот-
ра выходных данных. Нажмите любую клавишу для возврата в ТС.
- 91,92 -
Еще раз об отслеживании ошибок
----------------------------------------------------------------
В примере с единственным исходным файлом вы видели, что син-
таксические ошибки, о которых компилятор выдает предупреждения и
сообщения, могут быть просмотрены и выбраны из окна сообщений.
Аналогично, окно сообщений позволяет обрабатывать ошибки при
многофайловой компиляции (или makes).
Для того, чтобы это увидеть, введите некоторые синтаксичес-
кие ошибки в два файла: MYMAIN.C и MYFUNCS.C. Из MYMAIN.C в пер-
вой строке удалите первую острую скобку, а в пятой - удалите с в
char. Эти изменения должны генерировать три ошибки и три преду-
преждения в MYMAIN.
Теперь загрузите MYFUNCS.C и удалите первое r из "return" в
пятой строке. Это изменение вызовет две ошибки и два предупрежде-
ния.
Редактирование этих файлов сделает их не соответствующими по
времени создания своим объектными файлами, поэтому при выполнении
make они перекомпилируются. Так как вам нужно посмотреть эффект
обработки ошибок в нескольких файлах, то необходимо изменить кри-
терий для определения останова в Project-Make. Это достигается
включением переключателя on в меню Project.