С – это язык и высокого, и низкого уровня.

Главные фишки С:

· Программа состоит из вызова функций и вообще является функцией

· Все наши разные способы хранить данные в памяти на регистрах на стеке в С превращаются в одинаковые переменные

· Данные в случае ассемблера это машинное слово или двойное слово, или байт, то в С это разные типы данных и в том числе составные типы данных бывают очень больших размеров, состоящих из мелких

Программа на С:

1. Состоит из функций (весь код находится внутри функции)

2. Функции main в нашем случае возвращает некоторое значение int. Если нам нужно разбить код на мелкие части, чтобы не писать один большой код в функции main, то мы выделим нужные кусочки и будем их вызывать по именным функциям. Каждая функция может сопровождать каким-то количеством параметров входных и каждая функция может возвращать значение какого-то типа.

3. Обязательно должна быть функция main, т.к. она выполняет роль точки входа (с неё начинается выполнение программы)

Помимо кода, который располагается внутри функции main есть ещё данные. Все данные, которые мы можем синтаксически обозначить называют С-переменными. Любая именованная область данных называется С-переменно.

Главная идея С заключается в том, что у каждого типа данных фиксированный размер(Char – 1 байт и тп).

В С все переменные должны быть определены.

3 различные стратегии размещения:

· Global (в любом месте кода могут быть размещены)

· Local (которые мы передаем на стеке нашей подпрограммы)

· Размещение непосредственно на регистр

Типы данных:

· Скалярные: ( Целочисленные (разных размеров, знаковые, беззнаковые) Вещественные (разных размеров)

· Указательные (адреса)

· Составные (структура – описанный кем-то набор данных различного типа в конкретном порядке, размещенный в памяти в конкретном порядке и понимаемый языком С как один такой составной элемент данных)

1.png

Int num=START – глобальные целочисленная переменная

Float flt = 2.71… - глобальная вещественная переменная

Int i – локальная целочисленная переменная

Register int j – регистр локальной переменной

Enter a cardinal – массив типа char

Из чего состоит код:

· Из выражений

· Вызов функций

· Операнды

· Switches

· Returns

HSE/ProgrammingOS/01_CProgrammingLanguage/Conspect (последним исправлял пользователь Lecture_Uploads 2020-03-31 09:51:35)