Язык Си в примерах/Простейшая программа «Hello World»
Первая программа, которую мы рассмотрим, — это «Hello World» — программа, которая выведет на экран строку текста «Hello, World!» («Здравствуй, мир!») и закончит своё выполнение.
Посмотрим на неё внимательно. Первая строка — #include <stdio.h> — означает «включи заголовок stdio.h ». В этом заголовке объявляются функции, связанные с вводом и выводом данных. [1] [2]
Аббревиатуру stdio можно перевести как стандартный ввод-вывод (англ. standard input/output ). Буква «h» после точки означает заголовок (англ. header ). В заголовках (которые как правило представлены отдельными заголовочными файлами) обычно объявляются предоставляемые соответствующими им библиотеками функции, типы данных, константы и определения препроцессора. [3]
Далее идёт определение функции main . Оно начинается с объявления:
что значит: «функция с именем main , которая возвращает целое число (число типа int от англ. integer ) и у которой нет аргументов (void) »
В качестве варианта, стандарт допускает определение функции main как функции двух аргументов ( int argc и char *argv[] — имена, разумеется, могут быть произвольными), что используется для получения доступа к аргументам командной строки из программы. В данном случае, эта возможность не требуется, поэтому функция определена как безаргументная (что также явно разрешено стандартом.) [4]
Английское слово void можно перевести как «пустота». Далее открываются фигурные скобки и идёт тело функции, в конце фигурные скобки закрываются. Функция main — главная функция программы, именно с нее начинается выполнение программы.
Тело функции, в свою очередь, определяет последовательность действий, выполняемых данной функцией — логику функции. Наша функция выполняет одно единственное действие:
Это действие, в свою очередь, есть вызов функции puts стандартной библиотеки. [5] В результате выполнения этого вызова, на стандартный вывод (которым, скорее всего, окажется экран или окно на экране) печатается строка Hello, world! .
Затем идёт команда return 0; , которая завершает выполнение функции с возвратом значения 0, определяемого стандартом (для функции main ) как код успешного завершения. [6] [7]
Вариант «классический» [ править ]
Этот вариант отличается использованием функций printf (вместо puts ) и getchar .
В отличие от функции puts , выводящей переданную в качестве аргумента символьную строку, первый и обязательный аргумент функции printf определяет формат вывода. [8]
В общем случае, формат состоит из произвольного текста (не включающего символ % ) «перемешанного» с указателями преобразований (предваряемыми символом % ). В данном случае, однако, эта возможность не используется и никаких преобразований не выполняется.
Обратите внимание на появившуюся в строковой константе комбинацию \n — она включает в выводимую строку управляющий код (или управляющий символ) перевода (также разрыва или завершения) строки. В отличие от функции puts , всегда добавляющей этот код к выводимой строке, printf требует явного его указания.
Действующая редакция стандарта определяет семь таких комбинаций, причем все они записываются с помощью символа обратной косой черты \ (см. ASCII коды символов). [9]
Обратим внимание и на следующее новшество:
Окружение, в котором запускается программа, как правило можно настроить так, что вывод программы будет оставаться на экране после ее выполнения неограниченно долго. Проще всего это обеспечить вызывая программу из командного интерпретатора (который, в свою очередь, может быть запущен в окне эмулятора терминала) или (в зависимости от системы) окна Cmd.exe.
Однако, при запуске непосредственно из графического окружения, отведенное программе окно может закрыться сразу же после завершения программы. Функция getchar [10] ожидает ввод пользователя, тем самым «откладывая» завершение программы ( return ). Какие именно действия могут прервать это ожидание — зависит от системы, однако можно надеяться, что нажатие клавиши ⏎ Enter завершит эту функцию в любой системе.
В некоторых руководствах для этой же цели предлагается функция getch . Однако, эта функция (в отличие от getchar ) не является стандартной и, к тому же, зависима от платформы. Так, в некоторых системах использование getch требует включения файла curses.h и предшествующего вызова функции initscr . В других системах, однако, getch может быть объявлена в conio.h , и выполнение initscr — не требуется.
Вариант «экзотический» [ править ]
Наконец, рассмотрим следующий, выходящий за рамки стандарта, вариант этой программы.
Использование заголовка windows.h может произвести впечатление приемлемости этого варианта кода в рамках только лишь одной конкретной системы. Однако, для использованного здесь интерфейса существует и независимая свободная реализация — Wine, — позволяющая собрать и выполнить данный вариант на таких системах, как, например, GNU/Linux, FreeBSD, Solaris и Mac OS X.
Первая программа на C++ — урок 1
В качестве среды разработки под Windows автор советует использовать Visual Studio 2008 (800 Мб), если у вас Windows XP, Visual Studio 2013 (6.5 Гб) для Windows 7 и выше, или Dev C++ 5 (41 Мб) для тех, у кого слишком медленный интернет для загрузки Visual Studio. Пользователям Unix-подобных систем, потребуется компилятор GCC и любой текстовый редактор, например Vim.
После того, как вы установили все необходимое, приступим к написанию первой программы.
Создание проекта
Для Visual Studio
Откройте меню «Файл → Создать → Проект». Перейдите на вкладку «Общие» и выберите «Пустой проект». Придумайте проекту любое название, например «lesson1» и нажмите «OK».
В окне обозревателя решений (обычно он находится в левом верхнем углу) щелкните правой кнопкой на папке «файлы исходного кода». В диалоговом окне выберите пункт меню «Добавить → Создать элемент». Введите название для нового файла — main.cpp и нажмите кнопку «Добавить».
Для GCC
Создайте пустой файл и откройте его любым текстовым редактором, в котором есть подсветка синтаксиса.
Код первой программы
Наберите следующий код:
Описание синтаксиса
Директива #include используется для подключения других файлов в код. Строка #include <iostream> , будет заменена содержимым файла «iostream.h», который находится в стандартной библиотеке языка и отвечает за ввод и вывод данных на экран.
#include <cstdlib> подключает стандартную библиотеку языка С. Это подключение необходимо для работы функции system .
Содержимое третьей строки — using namespace std; указывает на то, что мы используем по умолчанию пространство имен с названием «std». Все то, что находится внутри фигурных скобок функции int main() <> будет автоматически выполняться после запуска программы.
Строка cout << «Hello, world!» << endl; говорит программе выводить сообщение с текстом «Hello, world» на экран.
Оператор cout предназначен для вывода текста на экран командной строки. После него ставятся две угловые кавычки ( << ). Далее идет текст, который должен выводиться. Он помещается в двойные кавычки. Оператор endl переводит строку на уровень ниже.
Если в процессе выполнения произойдет какой-либо сбой, то будет сгенерирован код ошибки, отличный от нуля. Если же работа программы завершилась без сбоев, то код ошибки будет равен нулю. Команда return 0 необходима для того, чтобы передать операционной системе сообщение об удачном завершении программы.
— В конце каждой команды ставится точка с запятой.
Компиляция и запуск
Теперь скомпилируйте и запустите программу. Тем, кто пользуется MS Visual Studio, нужно нажать сочетание клавиш «Ctrl+F5». Пользователям GCC нужно выполнить следующие команды:
Если программа собралась с первого раза, то хорошо. Если компилятор говорит о наличии ошибок, значит вы что-то сделали неправильно.
Прочитайте текст ошибки и попробуйте ее исправить своими силами. Если не получится, напишите о вашей проблеме в комментариях.
В качестве домашнего задания, переделайте эту программу так, чтобы вместо, сообщения «Hello, World» выводилось сообщение «Hello, User».
Как научиться программировать на C
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 56 человек(а).
Количество просмотров этой статьи: 21 187.
Язык C — один из старых языков программирования. Он был разработан в 70-х годах прошлого века, но все еще остается достаточно мощным средством благодаря тому, что относится к низкоуровневым средствам программирования, использующим осмысленные сокращения слов для обозначения различных команд. Изучение языка C также является отличной базой для перехода к изучению более сложных языков, а полученные здесь знания будут полезными практически во всех языках программирования и помогут вам втянуться в самостоятельную разработку приложений. Чтобы приступить к изучению этого языка, ознакомьтесь с информацией данной статьи.