Этапы создания исполняемой программы
Объединенная единым алгоритмом совокупность описаний и операторов образует программу на алгоритмическом языке. Для того чтобы выполнить программу, требуется перевести ее на язык, понятный процессору — в машинные коды. Этот процесс состоит из нескольких этапов.
Сначала программа передается препроцессору, который выполняет директивы, содержащиеся в ее тексте (например, включение в текст так называемых заголовочных файлов — текстовых файлов, в которых содержатся описания используемых в программе элементов).
Получившийся полный текст программы поступает на вход компилятора, который выделяет лексемы, а затем па основе грамматики языка распознает выражения и операторы, построенные из этих лексем. При этом компилятор выявляет синтаксические ошибки и в случае их отсутствия строит объектный модуль.
Компоновщик, или редактор связей, формирует исполняемый модуль программы, подключая к объектному модулю другие объектные модули, в том числе содержащие функции библиотек, обращение к которым содержится в любой программе (например, для осуществления вывода на экран). Если программа состоит из нескольких исходных файлов, они компилируются по отдельности и объединяются на этапе компоновки. Исполняемый модуль имеет расширение. ехе и запускается на выполнение обычным образом.
Тип определяет
- внутреннее представление данных в памяти,
- множество значений, которые могут применять данные этого типа,
- операции и функции, которые можно применять к величинам этого типа.
Типы языка С делятся на основные и составные.
Основные типы данных.
Основные (стандартные) типы часто называют арифметическими, потому что их использовать в арифметических операциях.
Целый тип int
Внутреннее представление - целое число в двоичном коде. Оно зависит от платформы и типа компьютера.
Для 16-разрядного процессора - 2 байта.
Для 32- разрядного процессора -4 байта.
С типом int используются т.н. спецификаторы.
Спецификатор short и long определяют длину внутреннего представления.
short int - 2 байта.
long int – 4 байта.
Спецификаторы signed и unsigned определяют вид числа – со знаком или без знака.
unsigned – беззнаковый – старший разряд рассматривается как часть кода.
signed – знаковый – старший разряд рассматривается знак числа.
unsigned int - целое без знака | Значение | Значащие цифры | ||||||
signed int - целое со знаком | Значение | знак | Значащие цифры | |||||
- 25 |
signed int – (принимается по умолчанию)
Таким образом, диапазон значений int зависит от спецификаторов.
Константам приписывается тип в соответствии с их видом. Можно изменять тип константы, используя суффикс L, l (long) или S, s,U, u (unsigned). Несколько суффиксов можно использовать одновременно:
32 L 5 lu 74 Ls.