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

Содержимое удалено Содержимое добавлено
→‎Вариант «простой»: Уточнение относительно stdio.h и заголовков в общем.
→‎Вариант «классический»: Удалена ссылка на несуществующую страницу.
Строка 62:
Обратите внимание на появившуюся в ''строковой константе'' комбинацию <code>\n</code> — она включает в выводимую строку [[w:Управляющие символы|управляющий код]] (или ''управляющий символ'') [[w:Перевод строки|перевода]] (также ''разрыва'' или ''завершения'') строки. В отличие от функции <code>puts</code>, всегда добавляющей этот код к выводимой строке, <code>printf</code> требует явного его указания.
 
<small>Действующая редакция стандарта определяет ''семь'' таких комбинаций, причем все они записываются с помощью символа [[w:Обратная косая черта|обратной косой черты]] <code>\</code> (см. [[Базовые понятия языка Си/Специальные символы]], [[../ASCII коды символов]]).<ref name="cds" >[http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf#page=42 WG14 N1570 Committee Draft — April 12, 2011] 5.2.2 ''Character display semantics''</ref></small>
 
Обратим внимание и на следующее новшество:
Строка 71:
Окружение, в котором запускается программа, как правило можно настроить так, что вывод программы будет оставаться на экране после ее выполнения неограниченно долго. Проще всего это обеспечить вызывая программу из [[w:Интерпретатор командной строки|командного интерпретатора]] (который, в свою очередь, может быть запущен в окне [[w:Эмулятор терминала|эмулятора терминала]]) или (в зависимости от системы) окна [[w:Cmd.exe|Cmd.exe]].
 
Однако, при запуске непосредственно из графического окружения, отведенное программе окно может закрыться сразу же после завершениезавершения программы. Функция <code>getchar</code><ref name="getchar" >[http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf#page=350 WG14 N1570 Committee Draft — April 12, 2011] 7.21.7.6 ''The getchar function''</ref> ожидает ввод пользователя, тем самым «откладывая» завершение программы (<code>return</code>). Какие именно действия могут прервать это ожидание — зависит от системы, однако можно надеяться, что нажатие клавиши [[w:Клавиша ввода|⏎ Enter]] завершит эту функцию в любой системе.
 
<small>В некоторых руководствах для этой же цели предлагается функция <code>getch</code>. Однако, эта функция (в отличие от <code>getchar</code>) не является ''стандартной'' и, к тому же, зависима от платформы. Так, в некоторых системах использование <code>getch</code> требует включения файла <code>curses.h</code> и предшествующего вызова функции <code>initscr</code>. В других системах, однако, <code>getch</code> может быть объявлена в <code>conio.h</code>, и выполнение <code>initscr</code> — не требуется.</small>