🍧2. Структура программы. Пример простой программы.
Пример простой программы
#include <stdio.h>
int main (void) /* простая программа */
{
int num; //определить переменную с именем num
num = 1; //присвоить значение переменной num
printf ("Я простой ");
printf ("компьютер.\n");
printf ("Моей любимой цифрой является %d, так как она первая.\n", num);
return 0;
}
Я простой компьютер.
Моей любимой цифрой является 1, так как она первая.
Директивы препроцессора и заголовочные файлы
Перед компиляцией препроцессором выполняется предварительная обработка над исходным кодом. Директива include (включить файлы) сообщает компилятору о необходимости включения информации, хранящейся в некотором файле.
Файл stdio.h является встроенным, он содержит информацию о функциях ввода и вывода. Файл, содержимое которого добавляется препроцессором в исходный текст в месте директивы, называется заголовочным
⭐ <lib.h> - подключение стандартных библиотек, заголовки, включенные в реализацию, "math.h" - подключение любых других.
⭐ Во избежание повторов при включении многих библиотек можно использовать
#ifndef
//or
#pragma once
Функция main(). Заголовок функции
int main(void) – объявление функции main().
Программа на С всегда начинается с выполнения функции main (). Круглые скобки идентифицируют main () как имя функции. Возвращаемый тип функции определен как int и указывает на то, что функция возвращает целое число. В круглых скобках содержится информация, передаваемая в функцию, (void) говорит о том, что main() не принимает аргументов.
Комментарии
Комментарии существенно облегчают понимание программы. Все, что находится между открывающей (/*) и закрывающей (*/) последовательностями, компилятор игнорирует. Для однострочных комментариев можно использовать символы //
⭐ Существует третий вид комментариев /** */ - его используют для документаций
Скобки, тела и блоки
Все функции С используют фигурные скобки для обозначения начала и конца своего тела, а также внутри функций для организации операторов в блоки.
Объявления
int num; - оператор объявления
В примере объявляются два аспекта: в функции имеется переменная num, которая с помощью int объявлена как целочисленная. Компилятор применяет эту информацию, чтобы выделить в памяти для переменной num пространство подходящего размера.
Точка с запятой в конце строки показывает, что данная строка является оператором. Слово int представляет собой ключевое слово языка С, обозначающее один из базовых типов данных С. (Ключевые слова – слова, используемые для построения языковых конструкций, и их нельзя применять в других целях). Слово num является идентификатором.
Таким образом, объявление соединяет конкретный идентификатор с конкретной ячейкой в памяти компьютера и при этом устанавливает тип данных, которые будут там храниться. В С все переменные должны быть объявлены до применения (однопроходный компилятор)
Присваивание
num = 1; - оператор присваивания
Предшествующая строка объявления зарезервировала в памяти компьютера место для переменной num, а строка с оператором присваивания сохранила значение 1 в этой ячейке.
Функция printf()
printf(“Я простой “); - вызов/обращение к функции
printf (“компьютер. \n”);
printf(“Моей любимой цифрой является %d, так как она первая. \n”, num);
Во всех этих строках используется стандартная функция printf(). То что содержится внутри скобок называется аргументом функции – это информация, передаваемая из функции main() в функцию printf()
Printf() рассматривает все, что помещено в двойные кавычки и выводит этот текст на экран. Комбинация \n – символ новой строки (управляющая последовательность – представление символов, которые невозможно ввести с клавиатуры \t \b \v). Комбинация %d – спецификатор формата, указывающий где и как должно быть введено значение переменной num (% показывает место, d показывает, что переменная должна выводиться как тип данных int)
Оператор возврата
return 0;
Является завершающим оператором программы. Состоит из ключевого слова return, за котором следует возвращаемое значение (тип данных которого соответствует возвращаемому типу функции, указанному в заголовке) и точка с запятой.
Структура простой программы на си
Программа на языке Си состоит из:
Директив препроцессора (макросов)
Объявления структур
Объявления функций (прототипов функций)
Объявления глобальных переменных (плохо!)
Определения функций (как минимум одной - main() )
В нашем примере использовался оператор объявления, определяющий имя и тип переменной, оператор присваивания, устанавливающий значение переменной, три оператора вывода (операторы вызова функции), в каждом из которых вызывалась функция printf(), и оператор возврата.
Last updated