ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП |
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы. |
Часть 2 Работа с исходными файлами в окне редактора При входе в окно редактора, перед загрузкой конкретного файла редактор Турбо-Си автоматически присваивает данному файлу имя NONAME.C. В этот момент вы можете воспользоваться всеми возможностя- ми редактора, а именно: - создать новый файл под именем NONAME или под любым другим именем; - загрузить и начать редактирование существующего файла; - выбрать файл из списка редактируемых файлов и загрузить его в окно редактора; - сохранить находящийся в окне редактора файл; - записать файл, находящийся в редакторе, под другим именем; - переходить из окна редактора в окно сообщений для нахождения и корррекции ошибок, полученных во время трансляции. Если вы еще не начали компилировать исходный файл, а только создаете или редактируете его, окно сообщений вам не нужно. Для то- го, чтобы раздвинуть окно редактора на весь экран нажмите F5. Для возврата в режим наложения экранов нажмите еще раз F5. Создание нового исходного файла Для создания нового файла используйте один из двух методов: - Находясь в главном меню, выберете FILE/NEW, затем нажмите клавишу Еnter. Таким образом открывается окно редактора с файлом NONAME.C. - Находясь в главном меню, выберите FILE/LOAD. На экране поя- вится прямоугольник-подсказка, в который нужно будет вписать имя файла. /Этой же цели можно достигнуть, нажав F3 из окна редактора/. Загрузка существующего исходного файла Для загрузки существующего файла можно воспользоваться двумя пунктами меню:FILE/LOAD и FILE/PICK. Если вы выбрали FILE/LOAD, то вы можете следующее: - Ввести имя файла, который вы хотите отредактировать /можно вместе с именем пути/, например: С:\TURBOC\TESTFILE.C. - Ввести в прямоугольник-подсказку Load File Name маску имени файла /используя символы * и ?/ и нажать Enter. Ввод маски *.* покажет все файлы в текущей директории, а также все остальные директории. За именами директорий идет обратная наклонная черта (\). Выбрав директорию, можно посмотреть файлы, в ней находящиеся. Нап- ример, после ввода С:*.С на экране появятся только файлы с расшире- нием .С, хранящиеся в корневой директории. Для выбора /выделения цветом/ имени файла используйте стрелки, затем нажмите Enter для загрузки выбранного файла. Теперь вы нахо- дитесь в главном меню. После этого откроется окно редактора с теку- щим редактируемым файлом /или с файлом с именем NONAME.C, если ни- какой другой файл не был загружен в редактор/. Если вы решили использовать File/Pick /пункт Pick обсуждается ниже в данной части/, то вы можете следующее: - Нажмите Alt-F и Р для вызова списка файлов /или нажмите сокращение Alt-F3/. - Выберите нужный файл при помощи стрелок вверх и вниз. Пункт меню Pick позволяет вам быстро выбрать имя одного из ранее загру- жавшихся файлов. Сохранение исходного файла - Из любого места системы нажмите F2. - Из главного меню выберите File/Save. Запись выходного файла Файл, находящийся в редакторе, может быть записан как новый файл, или же - на место существующего. Вы можете записать его в те- кущую директорию /по умолчанию/ или же указать новый дисковод и имя файла. Из главного меню выберите File/Write to. Затем впишите полное имя в появившийся прямоугольник-подсказку New Name: С:\DIR\SUBDIR\FILENAME.EXT и нажмите Enter. - С: необязательное имя дисковода. - \DIR\SUBDIR - необязательное имя директории. - FILENAME.EXT - имя и расширение выходного файла /по умолча- нию берется расширение .С/. Если расширение вам не требуется, пос- тавьте в конце имени точку. Для возвращения в главное меню нажмите Esc один раз, два на- жатия вернут вас в предыдущее активное окно. Также можно нажать F6 или Alt-E. Если указанный файл FILENAME.EXT уже существует, редактор спросит вас, уничтожать его или нет перед записью файла. Окно сообщений Окно сообщений используется для просмотра диагностических со- общений при компиляции и отладке программ. В Турбо-Си применен уни- кальный механизм отслеживания ошибок, отличительной чертой которого является вывод сообщений об ошибках и предупреждений в окно сообще- ний и одновременное выделение цветом соответствующего этому сообще- нию места в исходном файле в окне редактора /в зависимости от пара- метров меню отладчика Debug/. Подробно механизм отслеживания ошибок описан в приложении 3 "Параметры командной строки". Когда маркер находится в окне сообщений строка оперативной подсказки выглядит следующим образом: F1-Help F5-Zoom F6-Edit F9-Make F10-Main Menu При нажатии соответствующих клавиш получается следующий ре- зультат: F1-Help Открывает окно подсказки, поясняющее использование меха- низма отслеживания ошибок. F5-Zoom Расширяет окно сообщений на полный экран. F6-Edit Переход в окно редактора. F9-Make Создает файл .ЕХЕ. F10-Main Menu Вызывает главное меню. Часть 2. Команды меню Главное меню предоставляет вам основные возможности для заг- рузки, редактирования, трансляции, компоновки, отладки и запуска программ. В меню семь пунктов: File /работа с файлами/, Edit /ре- дактор/, Run /запуск/, Compile /трансляция/, Project /проект/, Options /параметры/ и Debug /отладка/; все они будут описаны ниже. Некоторые из подпунктов, в которые разворачиваются пункты главного меню, предназначены для использования опытными программистами; о них более подробно говорится в главе 3. Примечание. Упоминание о "создании" /make/ в данной главе от- носится к созданию проектов /Project-Make/, а не к автономной прог- рамме МАКЕ. Создание проектов - это обеспечивает определенный сер- вис при построении программ, схожий с сервисом программы МАКЕ. Бо- лее подробно об этом также рассказано в главе 3. Меню FILE /работа с файлами/ Разворачивающиеся меню File предназначено для загрузки сущес- твующих, создания новых и записи имеющихся файлов. При загрузке файла он автоматически помещается в редактор. После того, как вы отредактировали файл, его можно записать в любую директорию под лю- бым именем. Кроме того, это меню позволит вам перейти в другую ди- ректорию, временно выйти в ядро операционной системы или прекратить работу с Турбо-Си. Load /загрузка/ Загружает файл. Для получения распечатки имеющихся файлов можно воспользоваться масками, применяемыми в операционной системе, а можно просто указать конкретный файл, впечатав его имя в прямоу- гольник-подсказку. Если в имени файла или директории сделана ошиб- ка, на экране появится соответствующее сообщение. При попытке заг- рузить новый файл, когда в редакторе остался не сохраненный файл, появится сообщение, требующее подтверждения операции. В любом слу- чае оперативные клавиши не будут действовать, до тех пор, пока вы не нажмете клавишу, указанную в сообщении об ошибке или в сообщении о подтверждении операции. Pick /выбор/ Позволяет выбрать файл из списка предыдущих восьми файлов, загружавшихся в редактор. Выбранный файл помещается в редактор, а маркер устанавливается на то место, в котором он находился в момент выхода из редактирования данного файла. Если из списка файлов вы выбрали последний пункт "-Load file-"/загрузить файл/, тогда на эк- ране появится прямоугольник-подсказка, такой же, как если бы выбра- ли пункт File/Load или нажали F3. Для получения данного списка фай- лов можно воспользоваться оперативной клавишей Alt-F3. Более под- робно данный пункт описан в Приложении 3 /Параметры командной стро- ки/. В программе установки Турбо-Си TCINST имеется возможность за- дания автоматического сохранения списка файлов при выходе и загруз- ки его при входе в Турбо-Си. Для этого нужно установить пункт Load/save pick list в положение "on"/вкл./. Если этот параметр не установлен, список файлов при выходе из Турбо-Си сохраняться не бу- дет. New /новый/ Указывает на то, что создается новый файл. Вы сразу входите в редактор; файл по умолчанию получает имя NONAME.C. Это имя можно изменить при выходе из редактора. Save /сохранить/ Записывает файл, находящийся в редакторе, на диск. Если имя файла - NONAME.C, редактор спросит, не хотите ли вы переименовать его. Этот же результат может быть получен из любого места системы нажатием клавиши F2. Write to /запись/ Записывает файл под новым именем или под тем существующим - на место старого файла. Directory /каталог/ Позволяет посмотреть каталог любой директории или требуемый набор файлов. Для распечатки текущей директории нажмите Enter. Из- менить маску имени файла можно нажатием F4. Change dir /изменить директорию/ Позволяет увидеть текущую директорию и изменить дисковод и директорию. Os shell /ядро ОС/ Временный выход из Турбо-Си в операционную систему. Для возв- рата в Турбо-Си напечатайте Exit. Этим можно воспользоваться, если нужно выполнить какую-либо команду операционной системы, не выходя из Турбо-Си. Quit /выход/ Прекращает работу с Турбо-Си и выходит в ОС. Команда Edit /редактор/ Команда Edit вызывает встроенный экранный редактор. Для того, чтобы попасть в главное меню из редактора нажмите F10 /или Alt и первую букву любой нужной команды главного меню/. Исходный текст вашей программы останется на экране. Для возврата в редактор из главного меню нажмите Esc или Е, из любого другого мес- та - Alt-E. Команда Run /запуск/ Команда Run вызывает создание проекта /Project-Make/, а затем запускает программу, используя аргументы, заданные в меню Options/Args / создание проектов - это набор программных средств для создания программ, сходный с программой МАКЕ: см.гл.3/ После окончания работы программы на экране появляется сообщение "Press any key" /нажмите любую клавишу/; в этот момент можно узнать значе- ние, возвращаемое функцией main, для этого нужно нажать Alt-v. Примечание. Программы созданные в Турбо-Си, можно выполнять ихз операционной системы, для этого напечатайте имя файла /без рас- ширения/ при появлении подсказки ОС. Меню Compile /компиляция/ Это меню позволяет транслировать программу в объектный файл, создавать выполняемый файл, компоновать файлы, указывать первичный исходный файл, а также создавать программу на основе нескольких ис- ходных файлов. Compileto OBJ /трансляция в объектный файл/ Этот пункт меню является командой, транслирующей исходный текст в объектный файл. В строке этого пункта всегда находится имя файла, который будет получен в результате трансляции, напр. С:EXAMPLE.OBJ; Это имя получается на основе одного из двух следую- щих имен в указанном порядке: - имя первичного исходного файла, если оно не указано, то: - имя последнего файла, загружавшегося в редактор. Make EXE File /создание выполняемого файла/ Этот пункт меню является командой, вызывающей создание проек- та. В этом пункте всегда высвечивается имя файла, который получится в результате его выполнения, напр. C:EXAMPLE.EXE. При выборе данно- го пункта получится файл с указанным именем. Имя с расширением юЕХЕ получается на основе одного из трех следующих имен в указанном по- рядке: - имя файла проекта /с расширением .PRJ/, указанное в меню Project/Project name, или, если это имя не указано, - имя первичного исходного файла, или, если оно не указано, - имя последнего файла, загружавшегося в редактор. Link EXE /компоновка/ Компонует текущий объектный файл с библиотеками /.LIB/, в ре- зультате получается новый выполняемый файл. Build All /все сначала/ Перетранслирует все файлы вашего проекта, независимо от их даты. Этот пункт похож на пункт МАКЕ ЕХЕ, за исключением того, что в данном случае перетрансляция делается для всех файлов, тогда как Мake перетранслирует только текущие файлы. Primary C File /первичный исходный файл/ Этот пункт используется для указания имени файла, который должен транслироваться в объектный файл /или в файл .ЕХЕ, если не указано имя проекта/ при входе исполнения команды Compile/Compile to OBJ/Alt-F9/. Если проект не составлен, используйте пункт Compile/Make EXE или F9 /см.выше/. Указание имени первичного исходного файла полезно /но не обя- зательно/ при трансляции одного исходного файла, у которого есть несколько файлов-заголовков /.Н/. Если при трансляции обнаружена ошибка, файл, содержащий ошибку, а это может быть как файл .С, так и .Н, автоматически загружается в редактор для исправления ошибки. Следует отметить, что файл .Н будет автоматически загружен в редак- тор только в том случае, если в меню Debug/Track messages вместо значения по умолчанию поставлено значение "All Files", т.е. все файлы; в том случае, если используется параметр по умолчанию, заг- рузка файла .Н в редактор не произойдет. После исправления ошибки первичный исходный файл перетранслируется при нажатии Alt-F9, даже если он не загружен в редактор. В процессе компиляции в Турбо-Си на экране появится окно, в котором высвечиваются результаты компиляции. Для того, чтобы убрать это окно после завершения трансляции и компоновки, нажмите любую клавишу. Если в процессе создания программы обнаружены какие-либо ошибки, вы автоматически войдете в окно сообщений, маркер будет по- мещен на сообщение о первой встретившейся ошибке /оно будет выделе- но цветом/. Меню Compile и его пункты подробно описаны в главе 3. Меню Project /работа с несколькими файлами/ Это меню предназначено для комбинирования нескольких исходных и объектных файлов для создания законченных программ. Более подроб- но данное меню описано в главе 3. Project name /имя проекта/ Выбирает файл проекта, содержащий имена файлов, которые должны транслироваться и/или компоноваться. Имя проекта присваивается фай- лам .ЕХЕ и .МАР при их создании. Break make on /прервать работу при появлении .../ Данный пункт позволяет указать, после чего должна прерваться работа: после трансляции файла, в котором обнаружены предупрежде- ния, ошибки, фатальные ошибки, или же перед компоновкой файла. Clear project /очистить проект/ Очищает имя проекта и удаляет сообщения из окна сообщений. Меню Options /параметры/ Меню Options позволяет установить различные параметры, опреде- ляющие работу всех компонентов Турбо-Си. Эти параметры позволяют управлять работой компилятора, компоновщика, изменять директории включаемых и библиотечных файлов, аргументы, передаваемые исполняе- мой программе и т.д. Компилятор Параметры этого пункта позволяют определить конкретную конфи- гурацию аппаратуры, модель памяти, способ отладки, оптимизацию по- лучаемой программы, управление диагностическими сообщениями и мак- ро-определения. Модель В этом пункте можно выбрать одну из существующих в Турбо-Си моделей памяти. Модель памяти определяет метод обращения к памятти по умолчанию. По умолчанию выбирается малая модель памяти /Small/, на что указывает слово "Small", стоящее справа от наименования пун- кта "Model". Если вы войдете в меню Compile/Model, на экране поя- вятся наименования возможных моделей памятти: Tiny /минимальная/, Small /малая/, Compact /компактная/, Medium /средняя/, Large /боль- шая/ и Huge /максимальная/. Подробно эти модели описаны в главе 9. Defines /определения/ Выбрав этот пункт, вы можетевписать в появившийся на экране прямоугольник макро-определения, передаваемые препроцессору. Нес- колько макро-определений могут быть разделены точкой с запятой. Значение, при необходимости, присваивается знаком равенства. Пробелы в начале и конце строки удаляются, пробелы, находящие- ся в середине макро-определения, оставляются. Если в макро-опреде- ление необходимо вставить точку с запятой, перед ней следует поста- вить обратную косую черту. Приведенный ниже пример означает следующее: определяется имя BETA_TEST, переменной ONE присваивается значение 1; переменной COMPILER присваивается значение TURBOC. BETA_TEST; ONE=1; COMPILER=TURBOC Code Generation /генерация программ/ Параметры этого пункта определяют различные варианты генерации объектного кода. Последовательность вызова: При вызове функций компилятор может генерировать последовательность вызова соответствующую Си или Пас- калю /быструю последовательность/. Разница между ними заключается в способе работы со стеком, числе и порядке вызываемых параметров, а также в обработке внешних идентификаторов /по-разному обрабатывают- ся различные регистры и подчеркивания/. Если вы не являетесь опыт- ным программистом и не читали главу 9, посвященную более сложным вопросам программирования, не изменяйте не изменяйте значение дан- ного пункта, установленное по умолчанию, т.е. последовательность СИ. Набор инструкций: Позволяет указать тип процессора, на котором будет исполняться программа - 8088/8086 или 80186/80286. По умолча- нию принимается тип 8088/8086. Турбо-СИ может генерировать расши- ренный набор инструкций процессора 80186. Этот параметр также будет использоваться при генерации программ для работы на процессоре 80286 в режиме без защиты, как например на IBM PC AT подMS-DOS вер- сии 3.0 и выше. Плавающая точка: Этот параметр имеет три значения - 8087/80287, при котором непосредственно генерируется кол процессора 8087; Emulation /эмуляция/, в этом случае определяется, если на ва- шей машине процессор 8087, если он есть, то он используется, если же его нет, он эмулируется, конечно, с соответствующим замедлением работы; третье значение - None/не используется/, в этом случае вы не пользуетесь плаваюшей точкой. Если установлено значение None, а в программе производятся вычисления с плавающей точкой, при компо- новке будет выдана ошибка. Символьный тип по умолчанию: переключает между двумя определе- ниями символьного типа -Signed /знаковый/ и Unsigned /беззнаковый/. Если выбрано значение Signed, компилятор будет считать все опреде- ления типа char как signed char и наоборот, если указано значение unsigned. По умолчанию принимается значение Signed. Слияние одинаковых строк: Оптимизация на основе слияния двух строк, если одна соответствует другой. При этом уменьшается размер программ. Выравнивание: Позволяет выбрать выравнивание по словам или по байтам. При выравнивании по словам несимвольные данные выравнивают- ся по четным адресам. При выравнивании по байтам, данные могут вы- равниваться как по четным, так и по нечетным адресам, в зависимости от следующего доступного адреса. Выравнивание по словам увеличивает скорость обмена данными в процессоре 8086 и 80286. Стандартный кадр стека: Генерирует стандартный кадр стека /стандартные коды вызова функции и выхода из нее/. Полезен при ис- пользовании отладчика, т.к. упрощает процесс просмотра хранящихся в стекек вызванных процедур. Проверка переполнения стека: Генерирует программу с проверкой переполнения стека в процессе выполнения. Хотя этим увеличивается размер программы и время ее выполнения, не стоит этим пренебрегать, т.к. ошибку, возникающую при переполнении стека очень трудно обна- ружить. Генерация подчеркиваний: Этот параметр использууется по умол- чанию. Не изменяйте его, если вы не прочли часть 9, посвященную бо- лее сложным вопросам программирования. Номера строк: Включает номера строк в объектный файл для ис- пользования их отладчиком исходного текста. При этом увеличивается только размер объектного файла, размер и скорость выполнения самой программы остаются прежними. Всязи с тем, что компилятор может сое- динять вместе равзличные участки исходного текста при оптимизиции переходов или перегруппировывать строки /что затрудняет отладку по номерам строк /, мы рекомендуем выключать оптимизацию по перехо- дам при использовании номеров строк. Оптимизировать: изменяет стратегию генерации кода Турбо-Си. Обычно компилятор использует оптимизацию по размеру /Size/, выбирая наименьшую возможную последовательность кода. Если этот параметр переключить на скорость /Speed/, компилятор будет выбирать наибо- лее быструю последовательность для данной задачи. Использование регистровых переменых: Запрещает или разрешает использование регистровых переменных. При разрешении /on/ компиля- тор автоматически распределяет регистровые переменные, при запреще- нии /off/ регистровые переменные не используются, даже если указано ключевое слово register /см.приложение 3/. Запрещать использование регистровых переменных следует при на- писании интерфейса к существующим уже ассемлерным программам, кото- рые не поддерживают их использование. Оптимизация регистров: Подавляет излишние загрузочные опера- ции, запоминая содержимое регистров и используя его по мере необхо- димости. Примечание. При использовании этого параметра необходимо соб- людать осторожность, т.к. компилятор не может определить косвенное изменение регистра через ссылку. Подробно это ограничение описано в приложении 3. Оптимиззация переходов: Уменьшает размер программы, убирая лишние переходы и реорганизуя циклы и варианты операторы. Реоргани- зация циклов может ускорить выполнение плотных внутренних циклов. Source /исходный текст/ Пункты данного меню определяют интерпретацию исходного текста компилятором на начальных фазах компиляции. Длина идентификатора: Указывает количество значащих символов в идентификаторе. Идентификаторы считывают различными, если различны первые n символов идентификаторов. Это относится к переменным, е n символов идентификаторов. Это относится к переменным, мак- ро-именам препроцесссора и именам элементов структур. Длина может лежать в пределах от 1 до 32 символов. По умолчанию принимается значение 32. Вложенные комментарии: Позволяет использовать вложенные ком- ментарии в программах Турбо-Си. Обычно, вложенные комментарии не используются в других трансляторах Си и они неявляются переносимы- ми. Ключевые слова только постандарту ANSI: Установите этот пара- метр, если вы хотите, чтобы Турбо-Си распознавал только ключевые слова стандарта ANSI, а все дополнительные ключевые слова рассмат- ривал как обычные идентификаторы. Этими ключевыми словами являются следующие: near, far, huge, asm, cdecl, pascal, interrupt, _es, _ds, _cs, _ss, а также регистровые псевдопеременные /_АХ, _ВХ,.../. Этот параметр также опеределяет идентификатор _STDC_ во время ком- пиляции. Errors /ошибки/ Пункты данного меню позволяют определять, как компилятор реа- гирует на сообщения об ошибках и что он с ними делает. Ошибки - прекратить после ...:Компиляция прекращается после по- явления указанного числа ошибок, в данном случае, по умолчанию, 25. Указанное число может быть в пределах от 0 до 255. Если указан 0, компиляция будет продолжаться бесконечно. Предупреждения - прекратить после ... Компиляция прекращается после появления указанного числа предупреждений, в данном случае, по умолчанию, 100. Указанное чмсло может быть в пределах от 0 до 255. Если указан 0, компиляция будет продолжаться бесконечно, или же по- ка не будет исчерпан лимит ошибок. Вывод предупреждений: По умолчанию предупреждения выводятся, т.е. могут выводиться любые из следующих типов предупреждений /или все вместе/: предупреждения о переносимости, нарушения стандарта ANSI, распространенные ошибки и менее распространенные ошибки. Эти предупреждения подробно описаны в приложениях 2 и 3. Names /имена/ Изменяет присваемые по умолчанию имена сегментов, групп и клас- сов в секциях программы /Code/, данных /Data/ и BSS. После того, как вы выбрали один из пунктов, в следующем меню появляется звездочка /*/, которая указывает компилятору на использование имен по умолча- нию. Если вы не являетесь опытным программистом и не прочли главу 9, не изменяйте параметры этого пункта. Компоновщик Пункты данного меню устанавливают параметры компоновщика. Более подробно эти параметры описаны в приложении 3. Map file/карта загрузки/ Выбирает тип карты загрузки, генерируемой компоновщиком. Если она создается /параметр имеет любое значение, кроме off/, то файл с картой помещается в директорию, указанную в меню O/E/Output directory. По умолчанию карта загрузки не создается /off/; другие значения этого параметра :Segments /сегменты/, Publics/ глобальные символы/, Detailed /подробная карта/. Initialize Segments /инициализация сегментов/ Указывает компоновщику на необходимость неинициализированных сегментов /обычно эта операция не производится/. Detault Libraries /библиотеки по умолчанию/ При компоновке вашей программы с модулями, созданными другими компиляторами, имейте в виду, что этот компилятор может поместить в объектный модуль список библиотек, к которым компоновщик обращается по умолчанию. Если этот параметр включен /on/, компоновщик будет пы- таться найти неопределенные символы не только в библиотеках, постав- ляемых с Турбо-Си, но и в библиотеках, прописанных в объектном фай- ле. Если этот параметр включен /off/, компоновщик будет искать толь- ко в библиотеках Турбо-Си, все остальные библиотеки, прописанные в объектном файле, будут игнорироваться. Warn duplicate symbols /предепреждения о дублирующихся идентификаторах/ Определяет, будут или нет выдаваться предупреждения о наличии дублируемых символов в объектном файле и в библиотеках. По умолчанию предупреждения не выдаются. Stack warning /предупреждения о стеке/ Отменяет выдачу компоновщиком сообщения "No stack specified" /стек не опеределен/. Case-sensitive link /компоновка с учетом различий между регистрами/ Позволяет учитывать или не учитывать различия между регистрами при компоновке. Обычно различия учитываются, т.к. они учитываются в самом языке Си. Окружение Пункты этого меню указывают, где находятся файлы, необходимые компилятору, компоновщику, а также файлы подсказок. Некоторые пара- метры позволяют откорректировать рабочее окружение для обеспечения конкретных программистских потребностей. Include directories /директории включаемых файлов/ Указывает директории, в которых содержатся стандартные включае- мые файлы. Стандартные включаемые файлы указываются в угловых скоб- ках в директиве #include, например: #include |