- •Предисловие.
- •1. Введение.
- •1.1. История создания языка си.
- •1.2. Стандарты языка си.
- •2. Основные сведения, необходимые для создания программ на языке си.
- •2.1 Процесс создания исполняемого файла.
- •2.2 Распределение памяти программы.
- •2.3 Некоторые основные понятия.
- •2.4 Данные.
- •2.5 Структура простой программы.
- •3. Определение размеров типов данных и объектов.
- •4. Строки и строковые константы.
- •5. Директива препроцессора # define.
- •6. Функции форматированного ввода – вывода.
- •6.1 Функция форматированного вывода printf().
- •6.2 Функция форматированного ввода scanf().
- •7. Операции и операторы.
- •7.1 Арифметические операции
- •7.4 Порядок выполнения операций.
- •8. Выражения и операторы
- •8.1 Выражения.
- •8.2 Операторы.
- •8.3 Составные операторы.
- •8.4 Преобразование типов.
- •8.5 Операция приведения типов.
- •9. Функции ввода и вывода символов.
- •9.1 Функции getchar() и putchar().
- •9.2 Функции getch() и getche().
- •9.3 Ввод и вывод последовательности символов.
- •9.4 Подсчет символов, вводимых с клавиатуры.
- •9.5 Вывод символов из вводимого с клавиатуры файла.
- •9.6 Переключение ввода-вывода данных.
- •10. Принятие решений.
- •10.1 Оператор если (if).
- •10.2 Оператор если - иначе (if else).
- •10.3 Множественный выбор на основе операторов if, else.
- •10.5 Приоритеты операций отношения.
- •10.6 Логические операции (and, or, not).
- •10.7 Операция условия ?:.
- •10.8 Множественный выбор на основе операторов switch, break, default.
- •11. Циклы.
- •11.1 Цикл пока (while).
- •11.2 Цикл для (for).
- •11.4 Операция запятая ,.
- •11.5 Цикл делай пока (do while).
- •11.6 Вложенные циклы.
- •11.7 Операторы выход из структуры (break), продолжение (continue), безусловный переход (to go).
- •Литература.
- •Оглавление.
1.2. Стандарты языка си.
Стандарта языка Си до 1989 года не существовало. В качестве описания языка Си первоначально использовалось (в частности разработчиками компиляторов) первое издание книги Керниган Б., Ритчи Д. «Язык программирования Си», вышедшее в США в 1978 году. Этот неформальный, существовавший де-факто стандарт, обозначается специальным сокращением K&R (Kernighan & Ritchie).
В 1989 году Американский институт национальных стандартов (American National Standarts Institute - ANSI) принял стандарт языка Си C89. Этот же стандарт был принят Международной организацией по стандартизации (International Standards Organizaton - ISO). Стандарт ANSI/ISO C89 используется всеми компиляторами языка Си.
Стандарт ANSI/ISO C89 является также основой объектно-ориентированного языка программирования C++, созданного Бьерном Строуструпом (Bjarne Stroustrup) в 80-х годах в Bell Laboratories. Язык Си – это подмножество языка C++. Язык C++ - это надмножество языка Си.
В 1999 году был принят стандарт ANSI/ISO C99, в который был включен ряд изменений и дополнений [18]: массивы переменной длины, новые библиотеки, однострочные комментарии, добавления к препроцессору, новые встроенные типы данных и др.
2. Основные сведения, необходимые для создания программ на языке си.
2.1 Процесс создания исполняемого файла.
-
Исходный файл (текст программы на языке программирования Си) создается в редакторе системы программирования, например Borland C++.
-
Расширенный исходный файл получается на этапе, предшествующем компиляции исходного файла, с помощью программы препроцессор (входит в компилятор). На входе препроцессора – исходный текст с директивами препроцессора (отмечены в исходном тексте символом #). На выходе – расширенный исходный файл, полученный в результате выполнения директив. В частности, препроцессор подключает к исходному файлу заголовочные файлы (имеют традиционно расширение .h), в которых содержатся константы функций, шаблоны структур, программные интерфейсы (прототипы) функций. Заголовочные файлы, входящие в стандарты языка Си, называются стандартными заголовочными файлами. Названия их являются зарезервированными именами (т.е. могут использоваться только для обозначения этих файлов). В конкретных компиляторах могут быть дополнительные заголовочные файлы. Кроме того, для связи с графическими функциями используются соответствующие графические заголовочные файлы.
-
Объектный файл получается на этапе компиляции расширенного исходного файла с помощью программы компилятор. Он содержит двоичные машинные инструкции (объектные коды).
-
Исполняемый файл (загрузочный модуль) получается на этапе компоновки объектных файлов с помощью программы линкер (редактор связи, компоновщик). Он содержит не только код объектного файла, но и коды подпрограмм из библиотечных файлов. Исполняемый файл готов к выполнению центральным процессором ЭВМ.
ПРОЦЕСС СОЗДАНИЯ ИСПОЛНЯЕМОГО ФАЙЛА.
|
|
ПРОГРАММЫ, |
ФАЙЛЫ |
|
ОБРАБАТЫВАЮЩИЕ ФАЙЛЫ |
ИСХОДНЫЙ ФАЙЛ f.c (язык Си) |
ОБРАБАТЫВАЕТ |
ПРЕПРОЦЕССОР |
|
|
|
РАСШИРЕННЫЙ ИСХОДНЫЙ ФАЙЛ (язык Си) |
ОБРАБАТЫВАЕТ |
КОМПИЛЯТОР |
|
|
|
ОБЪЕКТНЫЙ ФАЙЛ f.obj (язык двоичных кодов) |
ОБРАБАТЫВАЕТ |
ЛИНКЕР (РЕДАКТОР СВЯЗЕЙ, КОМПОНОВЩИК) |
|
|
|
ИСПОЛНЯЕМЫЙ ФАЙЛ (ЗАГРУЗОЧНЫЙ МОДУЛЬ) f.exe (язык двоичных кодов) |
|
|