🍧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, за котором следует возвращаемое значение (тип данных которого соответствует возвращаемому типу функции, указанному в заголовке) и точка с запятой.

Структура простой программы на си

Программа на языке Си состоит из:

  1. Директив препроцессора (макросов)

  2. Объявления структур

  3. Объявления функций (прототипов функций)

  4. Объявления глобальных переменных (плохо!)

  5. Определения функций (как минимум одной - main() )

В нашем примере использовался оператор объявления, определяющий имя и тип переменной, оператор присваивания, устанавливающий значение переменной, три оператора вывода (операторы вызова функции), в каждом из которых вызывалась функция printf(), и оператор возврата.

Last updated