
- •Краткая история развития языка с
- •Алфавит языка с
- •Знаки операций
- •Комментарий
- •Структура программы
- •Этапы создания исполняемой программы
- •Тип данных.
- •Целый тип int
- •Символьный тип char
- •Типы с плавающей точкой
- •Операторы
- •Переменные
- •Выражения
- •Операции
- •Типичные ошибки
- •Оператор switch
- •Операторы цикла
- •Цикл с предусловием
- •Ц икл с постусловием
- •Цикл с параметром
Комментарий
Начинается с 2-х символов «косая черта». и заканчивается символом перехода на новую строку или заключается между символами /* и */
Структура программы
<директивы препроцессора>
<описания>
<функции>.
Директивы препроцессора используются для присоединения специальных файлов, содержащих описания используемых в программе функций.
Программа состоит из функций. Одна из функций должна иметь имя main. С первого оператора этой функции начинается выполнение программы.
Формат функции:
тип возвращаемого значения имя ([параметры]) {операторы, составляющие тело функции}
Если функция не должна возвращать значение, то указываете тип void,
тело функции должно заключаться в фигурные скобки,
функции не могут быть вложенными,
каждый оператор заканчивается « ; » (точкой с запятой).
Программа может состоять из нескольких модулей (исходных файлов).
Этапы создания исполняемой программы
Объединенная единым алгоритмом совокупность описаний и операторов образует программу на алгоритмическом языке. Для того чтобы выполнить программу, требуется перевести ее на язык, понятный процессору — в машинные коды. Этот процесс состоит из нескольких этапов.
Сначала программа передается препроцессору, который выполняет директивы, содержащиеся в ее тексте (например, включение в текст так называемых заголовочных файлов — текстовых файлов, в которых содержатся описания используемых в программе элементов).
Получившийся полный текст программы поступает на вход компилятора, который выделяет лексемы, а затем па основе грамматики языка распознает выражения и операторы, построенные из этих лексем. При этом компилятор выявляет синтаксические ошибки и в случае их отсутствия строит объектный модуль.
Компоновщик, или редактор связей, формирует исполняемый модуль программы, подключая к объектному модулю другие объектные модули, в том числе содержащие функции библиотек, обращение к которым содержится в любой программе (например, для осуществления вывода на экран). Если программа состоит из нескольких исходных файлов, они компилируются по отдельности и объединяются на этапе компоновки. Исполняемый модуль имеет расширение . ехе и запускается на выполнение обычным образом.
Тип данных.
Тип определяет
- внутреннее представление данных в памяти,
- множество значений, которые могут применять данные этого типа,
- операции и функции, которые можно применять к величинам этого типа.
Типы языка С делятся на основные и составные.
Основные типы данных.
Основные (стандартные) типы часто называют арифметическими, потому что их использовать в арифметических операциях.
Целый тип int
Внутреннее представление - целое число в двоичном коде. Оно зависит от платформы и типа компьютера.
Для 16-разрядного процессора - 2 байта.
Для 32- разрядного процессора -4 байта.
С типом int используются т.н. спецификаторы.
Спецификатор short и long определяют длину внутреннего представления.
short int - 2 байта.
long int – 4 байта.
Спецификаторы signed и unsigned определяют вид числа – со знаком или без знака.
unsigned – беззнаковый – старший разряд рассматривается как часть кода.
signed – знаковый – старший разряд рассматривается знак числа.
unsigned int - целое без знака |
Значение |
Значащие цифры |
|||||||
153 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
|
|
|
|
|
||||||
signed int - целое со знаком |
Значение |
знак |
Значащие цифры |
||||||
- 25 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
signed int – ( принимается по умолчанию)
Таким образом, диапазон значений int зависит от спецификаторов.
Константам приписывается тип в соответствии с их видом. Можно изменять тип константы, используя суффикс L, l (long) или S, s ,U, u (unsigned). Несколько суффиксов можно использовать одновременно:
32L 5lu 74Ls.