
- •1. Среда программирования. Трансляция, компоновка и отладка программ
- •2. Виды и характеристики языков программирования
- •3. Виды программных ошибок.
- •4. Описание языка Си (используемые символы, константы, идентификаторы, ключевые слова, комментарии). Используемые символы
- •Константы
- •Ключевые слова
- •Использование комментариев в тексте программы
- •5. Идентификаторы и ключевые слова языка Си. Идентификаторы и ключевые слова
- •6. Структура программы на языке Си.
- •7. Категории типов данных (символьные, целые, с плавающей точкой).
- •Целый тип данных
- •Данные плавающего типа
- •8. Символьные и целые типы данных. Данные целого типа (integer)
- •Данные символьного типа (char)
- •9. Вещественные типы данных (с плавающей точкой). Данные вещественного типа (float, double)
- •10. Преобразование типов (явное и неявное).
- •11. Использование модификаторов при декларации типов данных.
- •12. Кодовая таблица ascii. Системы счисления. Классификация и преобразование символов. Классификация и преобразование символов
- •13. Константы. Целые константы. Константы с плавающей точкой. Символьные константы. Строки. Null.
- •1 Целые Константы
- •2 Константы с Плавающей Точкой
- •3 Символьные Константы
- •4 Строки
- •14. Условный оператор if.
- •15. Тернарная условная операция ?:.
- •16. Оператор выбора альтернатив switch.
- •17. Составление циклических алгоритмов. Операторы цикла с предусловием и с постусловием. Оператор while
- •Оператор do while
- •18. Оператор цикла с предусловием и коррекцией for. Оператор for
- •19. Операторы перехода (break, continue, return, goto). Оператор break
- •Оператор continue
- •Оператор return
- •Оператор goto
- •20. Унарные операции.
- •21. Аддитивные и мультипликативные операции.
- •22. Операции сдвига.
- •23. Поразрядные операции.
- •24. Операции отношения.
- •25. Логические операции.
- •26. Операция присваивания.
- •27. Сокращенная запись операции присваивания.
- •28. Стандартная библиотека языка Си. Математические функции.
- •29. Стандартная библиотека языка Си. Функции работы со строками.
- •Int strcmp(const char *s1, const char *s2);
- •Integer atoi(const char *nptr);
- •30. Стандартная библиотека языка Си. Ввод данных.
- •31. Стандартная библиотека языка Си. Вывод данных.
- •32. Управляющая строка функций ввода/вывода.
- •33. Препроцессор. Директивы #include, #define.
- •Директивы препроцессора и указания компилятору
- •34. Графический режим. Функции черчения и заполнения.
- •35. Графический режим. Функции вывода текста, функции управления цветом. (outtext, outtextxy, setbkcolor, setcolor, settextjustify, settextstyle, textheight, textwidth)
- •Цвет фона и вычерчивания
- •36. Одномерные массивы. Инициализация одномерных массивов. Ввод и инициализация массива символов.
- •37. Многомерные массивы. Инициализация многомерных массивов.
- •38. Структуры
- •Пример 5
- •39. Объединения.
- •Пример 2
- •40. Перечисления.
- •41. Работа с файлами. Типы открытия файлов (текстовый и бинарный). Дескриптор файла ("указатель на файл"). Режимы работы с файлами.
- •42. Работа с файлами. Открытие файла в различных режимах и закрытие файла.
- •Int feof(file *stream);
- •Int fclose(file *stream);
- •Коды, устанавливающие режимы доступа к открываемым файлам
- •Void rewind(file *stream);
- •Int fsetpos(file *stream, const fpos_t *pos);
- •45. Указатели. Указатели и адреса объектов. Указатели и массивы. Указатели.
- •Указатели и адреса объектов
- •Указатели и массивы
- •46. Операции с указателями: присваивание адреса, определение значения по адресу, присваивание указателей
- •1. Присваивание адреса.
- •3. Сравнение указателей.
- •48. Работа с динамической памятью. Динамические массивы.
- •49. Функции. Определение функции, объявление функции и вызов функции. Возвращаемое значение функции.
- •3. Вызов функции
- •50. Функции. Типы передачи параметров функции (по значению, по адресу).
- •Передача переменных
- •Передача векторных параметров
- •51. Функции. Переменные в качестве параметров функций.
- •52. Функции. Массивы в качестве параметров функций.
- •53. Указатели на функции.
- •1. Среда программирования. Трансляция, компоновка и отладка программ
- •2. Виды и характеристики языков программирования
33. Препроцессор. Директивы #include, #define.
Получение исполняемой программы из исходного текста на языке Си происходит в несколько этапов. На самом первом этапе с исходным текстом программы работает специальная программа - препроцессор. Основная цель препроцессора - закончить формирование исходного текста программы на Си. Затем окончательный текст программы подвергается компиляции. Компиляция завершается генерацией объектного файла. После этого компоновщик формирует загрузочный модуль.
Директивы препроцессора и указания компилятору
Директивы препроцессора представляют собой инструкции, записанные в исходном тексте программы на языке С и предназначенные для выполнения препроцессором языка С. Директивы начинаются со специального знака #, помещаемого в первой позиции строки.
Директивы позволяют:
описывать макро, которые уменьшают трудоемкость написания программы и делают текст программы удобочитаемым и выразительным.
включать текст из других текстовых файлов, содержащих прототипы библиотечных и разработанных пользователем функций, шаблоны структурных переменных и т.д.
организовывать условную компиляцию, т.е. в зависимости от заданных в командной строке или среде параметров получать различный программный код.
Директива #include
включает содержимое исходного файла в текущий компилируемый исходный файл, т.е. препроцессор заменяет директиву #include заданным файлом.
Существуют следующие формы директивы:
#include <stdio.h>
#include “defs.h”
Препроцессор обрабатывает включаемый файл таким же образом, как если бы этот файл входил в состав исходного файла в точке, где записана директива #include
Имя пути представляет собой имя файла, которому может предшествовать имя устройства и спецификации директории. Синтаксис имени пути определяется соглашениями операционной системы.
Поиск файла, указанного в директиве зависит от имени пути, которое находится после объявления директивы #include:
если имя пути задано полностью и заключено в двойные кавычки, то препроцессор ищет файл только в директории, специфированной заданным именем пути, а стандартные игнорирует.
если в кавычках нет полного пути, то препроцессор начинает поиск включаемого файла в текущей рабочей директории (где находится файл, в котором записана директива #include), затем в директориях, указанных в командной строке компиляции, затем в стандартных директориях.
если имя пути заключено в угловые скобки, то поиск директориях, специфированных в командной строке, а затем в стандартных директориях.
Директива #define
Обычно используется для замены часто используемых в программе констант, ключевых слов, операторов и выражений осмысленными идентификаторами.
Идентификаторы, которые заменяют числовые или текстовые константы либо произвольную последовательность символов, называются именованными константами.
Идентификаторы, которые представляют некоторую последовательность действий, заданную операторами или выражениями языка С, называются макроопределениями.
Макроопределения могут иметь аргументы.
Обращение к макроопределению в программе называется макровызовом.
#define идентификатор текст
Директива #define заменяет все вхождения идентификатора в исходном файле на текст, следующий за идентификатором. Этот процесс называется макроподстановкой.