Программирование для Linux. Профессиональный подход - [4]
>.с
или >.h
. В случае C++ придерживайтесь расширений >.cpp
, >.hpp
, >.С
или >.H
. Когда файл будет открыт, введите нужный текст и сохраните результат, выбрав команду Save Buffer в меню Files. Чтобы выйти из редактора, воспользуйтесь командой Exit Emacs в меню Files.Те, кто испытывают раздражение от необходимости постоянно щелкать мышью, могут воспользоваться клавиатурными сокращениями, ускоряющими открытие и сохранение файлов, а также выход из редактора. Операции открытия файла соответствует сокращение >C-x C-f
. (Запись >C-x
означает нажатие клавиши >C-x C-s
, а чтобы выйти из Emacs — >C-x C-c
. Лучше узнать о возможностях редактора можно с помощью встроенного учебника, доступного через команду Emacs Tutorial в меню Help. В нем приведено множество советов, которые помогут пользователям научиться эффективнее работать с Emacs.
1.1.2. Автоматическое форматирование
Программисты, привыкшие работать в интегрированной среде разработки, оценят имеющиеся в Emacs средства автоматического форматирования кода. При открытии исходного файла, написанного на C/C++, редактор самостоятельно определяет наличие в нем программного кода, а не просто текста. Если нажать клавишу
>int main() {
>printf("Hello, world\n");
>}
Нажатие клавиши >printf()
приведет к следующему результату:
>int main() {
> printf("Hello, world\n");
>}
По мере работы с редактором Emacs читатели изучат и другие средства форматирования. Особенность редактора заключается в том. что он позволяет программировать практически любые операции, связанные с автоматическим форматированием. Благодаря этому были реализованы режимы редактирования множества видов документов, разработаны игры[3] и даже СУБД.
1.1.3. Синтаксические выделения
Помимо форматирования программного кода Emacs упрощает чтение файлов, написанных на C/C++, выделяя цветом различные синтаксические элементы. Например, ключевые слова могут быть выделены одним цветом, названия встроенных типов данных — другим, а комментарии — третьим. Подобный подход облегчает нахождение некоторых широко распространенных синтаксических ошибок.
Чтобы включить режим цветовых выделений, откройте файл >~/.emacs
и вставьте в него такую строку:
>(global-font-lock-mode t)
Сохраните файл, выйдите из Emacs и перезапустите редактор. Теперь можете открыть нужный исходный файл и наслаждаться!
Внимательные читатели, возможно, обратили внимание на то, что строка, вставленная в файл >.emacs
, выглядит написанной на языке LISP. Это и есть LISP! Большая часть редактора Emacs реализована именно на этом языке. На нем же можно писать расширения к редактору.
1.2. Компиляторы GCC
Компилятор превращает исходный текст программы, понятный человеку, в объектный код. исполняемый компьютером. Компиляторы, доступные в Linux-системах, являются честью коллекции GNU-компиляторов, известной как GCC (GNU Compiler Collection).[4] В нее входят компиляторы языков С, C++, Java, Objective-C, Fortran и Chill. В этой книге нас будут интересовать лишь первые два.
Предположим, имеется проект, в который входят два исходных файла: один написан на С (>main.c
; листинг 1.1), а другой — на C++ (>reciprocal.cpp
; листинг 1.2). После компиляции оба файла компонуются вместе, образуя программу >reciprocal
,[5] которая вычисляет обратное заданного целого числа.
>#include
>#include "reciprocal.hpp"
>int main(int argc, char **argv) {
> int i;
> i = atoi(argv[1]);
> printf("The reciprocal of %d is %g\n", i, reciprocal(i));
> return 0;
>}
>#include
>#include "reciprocal.hpp"
>double reciprocal (int i) {
> // Аргумент не должен быть равен нулю
> assert(i != 0);
> return 1.0/i;
>}
Есть также файл заголовков, который называется >reciprocal.hpp
(листинг 1.3).
>#ifdef __cplusplus
>extern "С" {
>#endif
>extern double reciprocal(int i);
>#ifdef __cplusplus
>}
>#endif
Первый шаг заключается в превращении исходных файлов в объектный код.
1.2.1. Компиляция одного исходного файла
Компилятор языка С называется >gcc
. При компиляции исходного файла нужно указывать опцию >-с
. Вот как, например, в режиме командной строки компилируется файл >main.с
:
>% gcc -с main.с
Полученный объектный файл будет называться >main.o
.
Компилятор языка C++ называется >g++
. Он работает почти так же, как и >gcc
. Следующая команда предназначена для компиляции файла >reciprocal.cpp
:
>% g++ -c reciprocal.cpp
Опция >-с
говорит компилятору о необходимости получить на выходе объектный файл (он будет называться >reciprocal.o
). Без неё компилятор >g++
попытается скомпоновать программу и создать исполняемый файл.
В процессе написания любой более-менее крупной программы обычно задействуется ряд дополнительных опций. К примеру, опция
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.