Зарегистрироваться
Восстановить пароль
FAQ по входу

Полубенцева М.И. C/C++. Процедурное программирование

  • Файл формата pdf
  • размером 15,48 МБ
  • Добавлен пользователем
  • Описание отредактировано
Полубенцева М.И. C/C++. Процедурное программирование
Санкт-Петербург: БХВ-Петербург, 2014. — 416 с. — ISBN 978-5-9775-0936-7.
Подробно рассмотрены процедурные возможности языков программирования C/C++. Изложены основные принципы строения программы на языке C/C++: раздельная компиляция, функциональная декомпозиция, блоки кода. Описаны синтаксические конструкции языка и показана специфика их использования. Подробно излагаются понятия, связанные с представлением данных: виды данных, их представление в тексте программы, размещение в памяти, время существования и области видимости. Описано назначение и принцип работы препроцессора. Детально рассмотрены указатели и массивы, а также их взаимосвязь в языке C/C++. Приведена сравнительная характеристика ссылок C++ и указателей. Обсуждаются сложные программные элементы. Рассмотрены агрегатные пользовательские типы данных языка C: структуры, объединения.
Введение
Предисловие
Особенности изложения
Благодарности
Общие принципы процедурного программирования
современном программировании в целом
Историческая справка
Этапы создания программного продукта
Памятка программисту
Критерии хорошего программного продукта
Структура программы
Разбиение на файлы (модульность) и связанные с этим понятия C/C++
Функциональная декомпозиция и связанные с ней понятия
Блоки кода
Оформление текста программы. Комментарии и отступы
Базовые понятия C/C++
Ключевые слова
Идентификаторы (имена)
Понятия lvalue и rvalue
Операторы
Арифметические операторы
Операторы присваивания
Побитовые операторы
Логические операторы и операторы отношения
Тернарный оператор ?:
Оператор ","
Данные
Виды данных
Константы (литералы)
Целые литералы
Литералы с плавающей точкой
Символьные литералы
Строковые литералы
Перечисление enum
Переменные
Что такое тип переменной
Фундаментальные (базовые, встроенные) типы C/C++
Оператор sizeof и размеры переменных
Знаковость переменной
Приведение типов
Тип wchar_t
Тип bool и BOOL
Понятия объявления и определения
Объявление переменной
Способы использования переменных и типы компоновки
Безопасная сборка проекта (type-safe linkage)
Размещение и время существования переменных
Ключевое слово static
Область видимости переменной (scope)
Скрытие (замещение) имени переменной
Пространства имен – namespace
Инициализация переменных
Явная инициализация переменных (программистом)
Неявная инициализация переменных (компилятором)
Модификаторы const и volatile
Ключевое слово const
Ключевое слово volatile
Инструкции (statements) C/C++
Общая информация об инструкциях
Инструкции выбора (условия)
Инструкции if, if... else
Переключатель – switch
Инструкции цикла
Инструкция while
Инструкция do... while
Инструкция for
Инструкции безусловного перехода: break, continue, return, goto
Препроцессор. Заголовочные файлы
Директивы препроцессора
Директива #define
Использование директивы #define
Предопределенные макросы
Диагностический макрос assert
Рекомендации
Директива #undef
Директивы #ifdef, #ifndef, #else u #endif
Директивы #if, #elifi, #else, #endif. Оператор препроцессора defined
Директива #include. Заголовочные файлы
Концепция разделения на интерфейс и реализацию. Механизм подключения заголовочных файлов
Формы директивы #include
Вложенные включения заголовочных файлов (стратегии включения)
Предкомпиляция заголовочных файлов
Заголовочные файлы стандартной библиотеки
Защита от повторных включений заголовочных файлов
Что может быть в заголовочных файлах и чего там быть не должно
Директива #pragma
Директива #error
Указатели и массивы
Указатели
Объявление и определение переменной-указателя
Инициализация указателя и оператор получения адреса объекта – &
Получение значения объекта посредством указателя: оператор разыменования – *
Арифметика указателей
Указатель типа void*
Нулевой указатель (NULL-pointer)
Указатель на указатель
Указатель и ключевые слова const и volatile
Явное преобразование типа указателя
Массивы
Объявление массива
Обращение к элементу массива – оператор []
Инициализация массива
Массивы и оператор sizeof
Связь массивов и указателей
Одномерные массивы
Двухмерные массивы более подробно
Многомерные массивы
Массивы указателей
Динамические массивы
Управление памятью. Низкоуровневые функции языка Си
Управление памятью. Операторы C++ new и delete
Сборщик мусора (garbage collector)
Операторы new[] и delete[] и массивы
Инициализация динамических массивов
Ссылки
Понятие ссылки
Сравнение ссылок и указателей
Функции
Понятия, связанные с функциями
Объявление (прототип) функции
Определение функции (реализация)
Вызов функции
Вызов inline-функции
Соглашения о вызове функции
Способы передачи параметров в функцию
Передача параметров по значению (Call-By-Value)
Передача параметров по адресу
Специфика передачи параметров
Переменное число параметров
Возвращаемое значение
Виды возвращаемых значений и механизмы их формирования
Проблемы при возвращении ссылки или указателя
Ключевое слово const и функции
Передача функции константных параметров
Возвращение функцией константных значений
Перегрузка имен функций
Возможные конфликты при использовании параметров по умолчанию
Рекурсивные функции
Указатель на функцию
Определение указателя на функцию
Инициализация указателя на функцию
Вызов функции посредством указателя
Использование указателей на функции в качестве параметров
Использование указателя на функцию в качестве возвращаемого значения
Массивы указателей на функции
Ключевое слово typedef и сложные указатели
Ключевое слово typedef и указатели на функции
Функции, возвращающие сложные указатели
Структуры
Зачем нужны структуры
Объявление структуры
Создание экземпляров структуры и присваивание значений полям структуры
Ключевое слово typedef и структуры
Совмещение объявления и определения. Анонимные структуры
Инициализация структурных переменных
Действия со структурами
Поля структуры пользовательского типа
Вложенные (nested) структуры
Указатели и структуры
Упаковка полей структуры компилятором. Оператор sizeof применительно к структурам
Структуры и функции
Передача структуры в функцию в качестве параметра
Возврат структуры по значению
Что можно использовать в качестве поля структуры
Поля битов
Объединения (union)
Понятие объединения
Использование объединений
Размер объединения
Инициализация объединений
Анонимные объединения (специфика Microsoft)
Приложения
Представление данных
О системах счисления и изображении количеств
Перевод чисел из одной системы счисления в другую
Использование различных систем счисления при технической реализации средств цифровой вычислительной техники
Особенности выполнения арифметических операций в ограниченной разрядной сетке
Изображение знакопеременных величин
Выявление переполнений при выполнении сложения и вычитания
Смена знака целого знакопеременного числа
Действия с повышенной разрядностью
Особенности умножения и деления целых двоичных чисел
Приведение типов данных
Числа с плавающей точкой
Неоднозначность представления и нормализованная форма
Форматы представления чисел ПТ двоичным кодом
Стандарт на числа ПТ ANSI/IEEE 754-1985
О понятии старшинства арифметических типов данных
Битовые поля и операции над ними
Подробнее об операциях сдвига
Язык Си и низкоуровневое программирование
Низкоуровневая (регистровая) модель вычислительного ядра
Оптимизация фрагмента кода по скорости
Определение положения программы в пространстве адресов
Использование средств уровня языка Ассемблера в программах на Си
Работа с регистрами периферийных устройств
Синхронизация программы с внешним событием
Программирование обработчиков прерываний
Запрет/разрешение прерываний процессору
Приоритеты и управление ими
Программирование без операционной системы
Предметный указатель
  • Чтобы скачать этот файл зарегистрируйтесь и/или войдите на сайт используя форму сверху.
  • Регистрация