Язык Си в примерах/Простейшая программа «Hello World»: различия между версиями

Содержимое удалено Содержимое добавлено
м <source> -> <syntaxhighlight> (phab:T237267)
 
Строка 4:
 
Первая программа, которую мы рассмотрим, — это «Hello World» — программа, которая выведет на экран строку текста «Hello, World!» («Здравствуй, мир!») и закончит своё выполнение.
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
 
Строка 12:
return 0;
}
</syntaxhighlight>
</source>
 
Посмотрим на неё внимательно. Первая строка — <sourcesyntaxhighlight lang="c" enclose="none" >#include <stdio.h></sourcesyntaxhighlight> —
означает «включи ''заголовок'' <code >stdio.h</code>». В этом заголовке ''объявляются'' функции, связанные с вводом и выводом данных.<ref name="include-c" /><ref name="include" />
 
Строка 20:
 
Далее идёт ''определение'' функции <code >main</code>. Оно начинается с ''объявления'':
<sourcesyntaxhighlight lang="c">
int main (void)
</syntaxhighlight>
</source>
что значит: «функция с именем <code>main</code>, которая возвращает целое число (число типа <code>int</code> от англ. {{lang|en|[[wikt:integer#integer I (существительное)|integer]]}}) и у которой нет аргументов <code>(void)</code>»
 
Строка 30:
 
Тело функции, в свою очередь, определяет последовательность действий, выполняемых данной функцией — логику функции. Наша функция выполняет одно единственное действие:
<sourcesyntaxhighlight lang="c">
puts ("Hello, World!");
</syntaxhighlight>
</source>
 
Это действие, в свою очередь, есть вызов функции <code >puts</code> стандартной библиотеки.<ref name="puts" /> В результате выполнения этого вызова, на [[w:Стандартные потоки#Стандартный вывод |стандартный вывод]] (которым, скорее всего, окажется экран или окно на экране) печатается строка <code >Hello, world!</code>.
Строка 42:
Этот вариант отличается использованием функций <code>printf</code> (вместо <code>puts</code>) и <code>getchar</code>.
 
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
 
Строка 51:
return 0;
}
</syntaxhighlight>
</source>
 
В отличие от функции <code >puts</code>, выводящей переданную в качестве аргумента символьную строку, первый и обязательный аргумент функции <code >printf</code> определяет ''формат'' вывода.<ref name="fprintf" />
Строка 62:
 
Обратим внимание и на следующее новшество:
<sourcesyntaxhighlight lang="c">
getchar ();
</syntaxhighlight>
</source>
 
Окружение, в котором запускается программа, как правило можно настроить так, что вывод программы будет оставаться на экране после ее выполнения неограниченно долго. Проще всего это обеспечить вызывая программу из [[w:Интерпретатор командной строки|командного интерпретатора]] (который, в свою очередь, может быть запущен в окне [[w:Эмулятор терминала|эмулятора терминала]]) или (в зависимости от системы) окна [[w:Cmd.exe|Cmd.exe]].
Строка 76:
Наконец, рассмотрим следующий, выходящий за рамки [[w:C11|стандарта]], вариант этой программы.
 
<sourcesyntaxhighlight lang="c">
#include <windows.h>
 
Строка 86:
return 0;
}
</syntaxhighlight>
</source>
 
Использование заголовка <code>windows.h</code> может произвести впечатление приемлемости этого варианта кода в рамках только лишь [[w:Microsoft Windows|одной конкретной]] системы. Однако, для использованного здесь [[w:Интерфейс программирования приложений|интерфейса]] существует и независимая [[w:Свободное программное обеспечение|свободная]] реализация — [[w:Wine|Wine]], — позволяющая [[../Компиляция программ|собрать]] и выполнить данный вариант на таких системах, как, например, [[w:Linux|GNU/Linux]], [[w:FreeBSD|FreeBSD]], [[w:Solaris|Solaris]] и [[w:Mac OS X|Mac OS X]].