Анализ программы 600
Структуры: что дальше? 601
Объединения: краткое знакомство 602
Содержание 15
Использование объединений 603
Анонимные объединения (C11) 604
Перечислимые типы 605
Константы enum 606
Стандартные значения 606
Присвоенные значения 606
Использование enum 606
Совместно используемые пространства имен 608
Средство typedef: краткое знакомство 609
Причудливые объявления 611
Функции и указатели 612
Ключевые понятия 619
Резюме 620
Вопросы для самоконтроля 620
Упражнения по программированию 623
Глава 15. Манипулирование битами 627
Двоичные числа, биты и байты 628
Двоичные целые числа 629
Целые числа со знаком 629
Двоичные числа с плавающей запятой 630
Другие основания систем счисления 631
Восьмеричная система счисления 631
Шестнадцатеричная система счисления 631
Побитовые операции 632
Побитовые логические операции 633
Случай применения: маски 634
Случай применения: включение (установка) битов 635
Случай применения: выключение (очистка) битов 636
Случай применения: переключение битов 636
Случай применения: проверка значения бита 637
Побитовые операции сдвига 637
Пример программы 639
Еще один пример 640
Битовые поля 642
Пример с битовыми полями 644
Битовые поля и побитовые операции 647
Средства выравнивания (C11) 653
Ключевые понятия 655
Резюме 655
Вопросы для самоконтроля 656
Упражнения по программированию 658
Глава 16. Препроцессор и библиотека С 661
Первые шаги в трансляции программы 662
Символические константы: #define 663
Лексемы 666
Переопределение констант 667
Использование аргументов в директиве #define 667
16 Содержание
Создание строк из аргументов макроса: операция # 670
Средство слияния препроцессора: операция # # 671
Макросы с переменным числом аргументов: ... и_____ VA_ARGS_ 672
Выбор между макросом и функцией 673
Включение файлов: директива #include 674
Пример заголовочного файла 675
Случаи применения заголовочных файлов 677
Другие директивы 678
Директива # unde f 678
Определение с точки зрения препроцессора 678
Условная компиляция 679
Предопределенные макросы 684
Директивы #line и #error 685
Директива #pragma 685
Обобщенный выбор (C11) 686
Встраиваемые функции (С99) 688
Функции Noreturn (С11) 690
Библиотека С 690
Получение доступа к библиотеке С 691
Использование описаний библиотеки 692
Библиотека математических функций 693
Немного тригонометрии 694
Варианты типов 695
Библиотека tgmath.h (С99) 697
Библиотека утилит общего назначения 698
Функции exit() и atexit() 698
Функция qsort () 700
Библиотека утверждений 704
Использование assert() 704
_Static_assert(Cl1) 706
Функции memcpy() Hmemmove() избиблиотеки string.h 707
Переменное число аргументов: файл stdarg.h 709
Ключевые понятия 711
Резюме 711
Вопросы для самоконтроля 712
Упражнения по программированию 713
Глава 17. Расширенное представление данных 717
Исследование представления данных 719
От массива к связному списку 721
Использование связного списка 725
Дополнительные соображения 728
Абстрактные типы данных 729
Получение абстракции 730
Построение интерфейса 731
Использование интерфейса 735
Реализация интерфейса 737
Создание очереди с помощью ADT 744
Определение абстрактного типа данных для представления очереди 744
Содержание 17
Определение интерфейса 744
Реализация представления данных интерфейса 745
Тестирование очереди 753
Моделирование реальной очереди 755
Сравнение связного списка и массива 761
Двоичные деревья поиска 764
Создание абстрактного типа данных для двоичного дерева 765
Интерфейс двоичного дерева поиска 766
Реализация двоичного дерева 768
Тестирование пакета для древовидного представления 782
Соображения по поводу дерева 786
Другие направления 787
Ключевые понятия 788
Резюме 788
Вопросы для самоконтроля 788
Упражнения по программированию 789
Приложение А. Ответы на вопросы для самоконтроля 791
Ответы на вопросы для самоконтроля из главы 1 792
Ответы на вопросы для самоконтроля из главы 2 792
Ответы на вопросы для самоконтроля из главы 3 794
Ответы на вопросы для самоконтроля из главы 4 796
Ответы на вопросы для самоконтроля из главы 5 798
Ответы на вопросы для самоконтроля из главы 6 801
Ответы на вопросы для самоконтроля из главы 7 804
Ответы на вопросы для самоконтроля из главы 8 807
Ответы на вопросы для самоконтроля из главы 9 808
Ответы на вопросы для самоконтроля из главы 10 810
Читать дальше