Язык C в XXI веке
Здесь можно купить книгу "Язык C в XXI веке " в печатном или электронном виде. Также, Вы можете прочесть аннотацию, цитаты и содержание, ознакомиться и оставить отзывы (комментарии) об этой книге.
Место издания: Москва
ISBN: 978-5-97060-614-8
Страниц: 377
Артикул: 96646
Возрастная маркировка: 16+
Краткая аннотация книги "Язык C в XXI веке"
Язык C — не просто фундамент всех современных языков программирования, он и сам — современный язык, идеальный для написания эффективных приложений передового уровня. Последние 20 лет C не стоял на месте. Сам язык и окружающая его экосистема подвергаются пересмотру. Эта книга начинается там, где другие заканчиваются. В ней рассказано, как изменилась функциональность, поддерживаемая любым компилятором, благодаря двум новым стандартам C, вышедшим со времен оригинального ANSI. Цель книги – рассмотреть то, чего нет в других учебниках по C: инструменты и окружение; библиотеки для работы со связанными списками и анализаторами XML; написание удобочитаемого кода с дружественным программным интерфейсом.
Издание предназначено для программистов, имеющих опыт работы на каком-либо языке и обладающими базовыми знаниями о С.
Содержание книги "Язык C в XXI веке "
Предисловие
Часть I. Окружение
Глава 1. Настраиваем среду для компиляции
Работа с менеджером пакетов
Компиляция программ на C в Windows
POSIX в Windows
Компиляция программ на C при наличии подсистемы POSIX
Компиляция программ на C в отсутствие подсистемы POSIX
Как пройти в библиотеку?
Несколько моих любимых флагов
Пути
Компоновка во время выполнения
Работа с файлами makefile
Задание переменных
Правила
Сборка библиотек из исходного кода
Сборка библиотек из исходного кода (даже если системный администратор против)
Компиляция C-программы с помощью встроенного документа
Включение файлов-заголовков из командной строки
Универсальный заголовок
Встроенные документы
Компиляция из stdin
Глава 2. Отладка, тестирование, документирование
Работа с отладчиком
Отладка программы как детективная история
Переменные GDB
Распечатка структур
Использование Valgrind для поиска ошибок
Автономное тестирование
Использование программы в качестве библиотеки
Покрытие
Встроенная документация
Doxygen
Грамотное программирование с помощью CWEB
Проверка ошибок
Ошибки и пользователи
Учет контекста, в котором работает пользователь
Как следует возвращать уведомление об ошибке?
Глава 3. Создание пакета для проекта
Оболочка
Замена команд оболочки их выводом
Применение циклов for в оболочке для обработки набора файлов
Проверка наличия файла
Команда fc
Файлы makefile и скрипты оболочки
Создание пакета с помощью Autotools
Пример работы с Autotools
Описание Makefile с помощью Makefile.am
Скрипт configure
Глава 4. Управление версиями
Получение списка отличий с помощью diff
Объекты Git
Тайник
Деревья и их ветви
Объединение
Перемещение
Дистанционные репозитории
Глава 5. Мирное сосуществование
Динамическая загрузка
Ограничения динамической загрузки
Процесс
Писать так, чтобы можно было понять
Функция-обертка
Контрабанда структур данных через границу
Компоновка
Python как включающий язык
Компиляция и компоновка
Условный подкаталог для Automake
Distutils при поддержке Autotools
Часть II. Язык
Глава 6. Ваш приятель – указатель
Автоматическая, статическая и динамическая память
Автоматическая
Статическая
Динамическая
Переменные для хранения постоянного состояния
Указатели без malloc
Структуры копируются, для массивов создаются псевдонимы
malloc и игрища с памятью
Виноваты звезды
Все, что нужно знать об арифметике указателей
Typedef как педагогический инструмент
Глава 7. Несущественные особенности синтаксиса C, которым в учебниках уделяется чрезмерно много внимания
Ни к чему явно возвращать значение из main
Пусть объявления текут свободно
Меньше приведений
Перечисления и строки
Метки, goto, switch и break
К вопросу о goto
Предложение switch
Нерекомендуемый тип float
Сравнение чисел без знака
Безопасное преобразование строки в число
Глава 8. Важные особенности синтаксиса C, которые в учебниках часто не рассматриваются
Выращивание устойчивых и плодоносящих макросов
Приемы работы с препроцессором
Проверочные макросы
Защита заголовков
Компоновка с ключевыми словами static и extern
Переменные с внешней компоновкой в файлах-заголовках
Ключевое слово const
Форма существительное–прилагательное
Конфликты
Глубина
Проблема char const **
Глава 9. Текст
Безболезненная обработка строк с помощью asprintf
Безопасность
Константные строки
Расширение строк с помощью asprintf
Песнь о strtok
Unicode
Кодировка для программ на C
Библиотеки для работы с Unicode
Пример кода
Глава 10. Улучшенная структура
Составные литералы
Инициализация с помощью составных литералов
Макросы с переменным числом аргументов
Безопасное завершение списков
Несколько списков
Foreach
Векторизация функции
Позиционные инициализаторы
Инициализация массивов и структур нулями
Псевдонимы типов спешат на помощь
К вопросу о стиле
Возврат нескольких значений из функции
Извещение об ошибках
Гибкая передача аргументов функциям
Объявление своей функции по аналогии с printf
Необязательные и именованные аргументы
Доведение до ума бестолковой функции
Указатель на void и структура, на которую он указывает
Функции с обобщенными входными параметрами
Обобщенные структуры
Глава 11. Объектно-ориентированное программирование на C
Расширение структур и словарей
Реализация словаря
С без зазоров
Функции в структурах
V-таблицы
Область видимости
Закрытые элементы структуры
Перегрузка
_Generic
Подсчет ссылок
Пример: объект подстроки
Пример: основанная на агентах модель формирования групп
Заключение
Глава 12. Параллельные потоки
Окружение
Составные части
OpenMP
Компиляция для использования OpenMP
Интерференция
Map-reduce
Несколько задач
Поточная локальность
Локализация нестатических переменных
Разделяемые ресурсы
Атомы
Библиотека pthread
Атомы C
Атомарные структуры
Глава 13. Библиотеки
GLib
Стандарт POSIX
Разбор регулярных выражений
Использование mmap для очень больших наборов данных
Библиотека GNU Scientific Library
SQLite
Запросы
libxml и cURL
Эпилог
Приложение. Основные сведения о языке C
Структура
В C необходим этап компиляции, состоящий из одной команды
Существует стандартная библиотека, это часть операционной системы
Существует препроцессор
Существуют комментарии двух видов
Нет ключевого слова print
Объявления переменных
Любая переменная должна быть объявлена
Даже функции необходимо объявлять или определять
Базовые типы можно агрегировать в массивы и структуры
Можно определять новые структурные типы
Можно узнать размер типа
Не существует специального типа строки
Функции и выражения
Правила видимости в C очень просты
Функция main имеет особый смысл
Большая часть работы программы на C сводится к вычислению выражений
При вычислении функций используются копии входных аргументов
Выражения заканчиваются точкой с запятой
Есть много сокращенных способов записи арифметических операций
В C понятие истины трактуется расширительно
Результатом деления двух целых всегда является целое
В C имеется тернарный условный оператор
Ветвления и циклы несильно отличаются от других языков
Цикл for – просто компактная форма цикла while
Указатели
Можно напрямую запросить блок памяти
Массивы – это просто блоки памяти, любой блок памяти можно использовать как массив
Указатель на скаляр – это по существу массив с одним элементом
Существует специальная нотация для доступа к полям структур по указателю
Указатели позволяют изменять аргументы функции
Любой объект где-то находится, и, значит, на него можно указать
Глоссарий
Библиография
Предметный указатель
Все отзывы о книге Язык C в XXI веке
Внимание!
При обнаружении неточностей или ошибок в описании книги "Язык C в XXI веке (автор Бен Клеменс)", просим Вас отправить сообщение на почту help@directmedia.ru. Благодарим!
и мы свяжемся с вами в течение 15 минут
за оставленную заявку