Полный справочник по C
Часть I. Основы языка C
Глава 01. Обзор возможностей языка C
Краткая история развития С
С - язык среднего уровня
Язык С хорошо структурирован
Язык С создан для программистов
Компилятор и интерпритатор
Структура программы на языке С
Библиотека и компановка
Раздельная компиляция
Компиляция программы на языке С
Карта памяти программы на языке С
Сравнительная характеристика языков С и С++
Словарь терминов
Глава 02. Выражения
Базовые типы данных
Модификация базовых типов
Имена переменных
Переменные
Четыре типа областей видимости
Квалификатор типа
Спецификаторы класса памяти
Инициализация переменных
Константы
Операции
Выражения
Глава 03. Операторы
Логические значениия ИСТИНА (True) и ЛОЖЬ (False) в языке С
Условные операторы
Вложенные условные операторы if
Лестница if-else-if
Оператор цикла
Оператор перехода
Оператор-выражение
Блок операторов
Глава 04. Массивы и строки
Одномерные массивы
Создание указателя на массив
Передача одномерного массива в функцию
Строки
Двухмерные массивы
Многомерные массивы
Индексация указателей
Инициализация массивов
Массивы переменной длины
Приемы использования массивов и строк на примере игры в крестики-нолики
Глава 05. Указатели
Что такое указатели
Указательные переменные
Операции для работы с указателями
Указательные выражения
Указатели и массивы
Многоуровневая адресация
Инициализация указателей
Указатели на функции
Функции динамического распределения
Указатели с квалификатором restrict
Трудности при работе с указателями
Глава 06. Функции
Общий вид функции
Что такое область действия функции
Аргументы функции
Аргументы функции main(): argv и argc
Оператор return
Что возвращает функция main()?
Рекурсия
Прототип функции
Объявление списков параметров переменной длины
Правило "неявного int"
Старомодные и современные объявления параметров функций
Ключевое слово inline
Глава 07. Структуры, объединения, перечисления и декларации typedef
Структуры
Массивы структур
Передача структур функциям
Указатели на структуры
Массивы и структуры внутри структур
Объединения
Битовые поля
Перечисления
Важное различие между С и С++
Использование sizof для обеспечения переносимости
Средство typedef
Глава 08. Ввод / вывод на консоль
Чтение и запись символов
Чтение и запись строк
Форматный ввод / вывод на консоль
printf()
scanf()
Глава 09. Файловый ввод / вывод
Файловый ввод / вывод в С и С++
Файловый ввод / вывод в стандартном С и UNIX
Потоки и файлы
Основы файловой системы
Функции fread() и fwrite()
Ввод / вывод при прямом доступе: функция fseek()
Функции fprinf() и fscanf()
Стандартные потоки
Глава 10. Препроцессор и комментарии
Препроцессор
Директива #define
Директива #error
Директива #include
Директивы условной компиляции
Директива #undef
Использование defined
Директива #line
Директива #pragma
Операторы препроцессора # и ##
Имена предопределенных макрокоманд
Комментарии
Часть II. Стандарт C99
Глава 11. C99
Сравнение С99 с С89. Общее впечатление
Указатели, определенные с квалификаторами типа restrict
Ключевое слово inline
Новые встроенные типы данных
Расширение массивов
Однострочные комментарии
Распределение кода и объявлений
Изменения препроцессора
Объявление переменных внутри цикла for
Составные литералы
Массивы с переменными границами в качестве членов структур
Назначенные инициализаторы
Новые возможности семейства функций printf() и scanf()
Новые библиотеки С99
Зарезервированный идентификатор __func__
Расширение граничных значений трансляции
Неявный int больше не поддерживается
Удалены неявные объявления функций
Ограничения на return
Расширенные целые типы
Изменения в правилах продвижения целых типов
Часть III. Стандартная библиотека
Глава 12. Редактирование связей, использование библиотек и заголовков
Редактор связей
Стандартная библиотека C
Заголовки
Переопределение библитечных функций
Глава 13. Функции ввода / вывода
clearerr
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
fopen
fprintf
fputc
fputs
fread
freopen
fscanf
fseek
fsetpos
ftell
fwrite
getc
getchar
gets
perror
printf
putc
putchar
puts
remove
rename
rewind
scanf
setbuf
setvbuf
snprintf
sprintf
sscanf
tmpfile
tmpnam
ungetc
vprintf, vfprintf, vsprintf, vsnprintf
vscanf, vfscanf, vsscanf
Глава 14. Строковые и символьные функции
isalnum
isalpha
isblank
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
memchr
memcmp
memcpy
memmove
memset
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strerror
strlen
strncat
strncmp
strncpy
strpbrk
strrchr
strspn
strstr
strtok
strxfrm
tolower
toupper
Глава 15. Математические фукции
acos
acosh
asin
asinh
atan
atan2
atanh
cbrt
ceil
copysign
cos
cosh
erf
erfc
exp
exp2
expm1
fabs
fdim
floor
fma
fmax
fmin
fmod
frexp
hypot
ilogb
ldexp
lgamma
llrint
llround
log
log10
log1p
log2
logb
lrint
lround
modf
nan
nearbyint
nextafter
nexttoward
pow
remainder
remquo
rint
round
scalbln
scalbn
sin
sinh
sqrt
tan
tanh
tgamma
trunc
Глава 16. Функции времени, даты и локализации
asctime
clock
ctime
difftime
gmtime
localeconv
localtime
mktime
setlocale
strftime
time
Глава 17. Функции динамического распределения памяти
calloc
free
malloc
realloc
Глава 18. Служебные функции
abort
abs
assert
atexit
atof
atoi
atol
atoll
bsearch
div
exit
_Exit
getenv
labs
llabs
ldiv
lldiv
longjmp
mblen
mbstowcs
mbtowc
qsort
raise
rand
setjmp
signal
srand
strtod
strtof
strtol
strtold
strtoll
strtoul
strtoull
system
va_arg, va_start, va_end, va_copy
wcstombs
wctomb
Глава 19. Функции обработки двухбайтовых символов
Функции классификации двухбайтовых символов
Функции ввода-вывода двухбайтовых символов
Функции для операций над строками двухбайтовых символов
Преобразование строк двухбайтовых символов
Функции для обработки массивов двухбайтовых символов
Функции для преобразования многобайтовых и двухбайтовых символов
Глава 20. Библиотечные средства добавленные в версии C99
Библиотека поддержки арифметических операций с комплексными числами
Библиотека поддержки среды вычислений с плавающей точкой
Заголовок <stdint.h>
Функции для преобразования формата целочисленных значений
Математические макросы обобщенного типа
Заголовок <stdbool.h>
Часть IV. Алгоритмы и приложения
Глава 21. Сортировка и поиск
Сортировка
Классы алгоритмов сортировки
Оценка алгоритмов сортировки
Пузырьковая сортировка
Сортировка посредством выбора
Сортировка вставками
Улучшенные алгоритмы сортировки
Выбор метода сортировки
Сортировка других структур данных
Сортировка дисковых файлов с произвольной выборкой
Поиск
Глава 22. Очереди, стеки, связанные списки и деревья
Очереди
Циклическая очередь
Стеки
Связанные списки
Односвязные списки
Двусвязные списки
Пример списка рассылки
Двоичные деревья
Глава 23. Разреженные массивы
Зачем нужны разреженные массивы?
Представление разреженного массива в виде связного списка
Представление разреженного массива в виде двоичного дерева
Представление разреженного массива в виде массива указателей
Хэширование
Выбор метода
Глава 24. Синтаксичекий разбор и вычисление выражений
Выражения
Разбиение выражения на лексемы
Разбор выражений
Простая программа синтаксического анализа выражений
Работа с переменными в анализаторе
Проверка синтаксиса в рекурсивном нисходящем анализаторе
Глава 25. Решение задач с помощью искусственного интелекта
Представление и термилогия
Комбинаторные взрывы
Методы поиска
Оценка поиска
Представление в виде графа
Поиск в глубину
Полные перебор, или поиск в ширину
Добавление эвристики
Поиск методом наискорейшего подъема
Поиск и использованием частичного пути минимальной стоимости
Выбор метода поиска
Поиск нескольких решений
Поиск "оптимального" решения
И снова возвращаемся к поиску потерянных ключей
Часть V. Разработка программ с помощью C
Глава 26. Создание скелета приложения для Windows 2000
Общая картина специфики программирования для Windows 2000
Интерфейс прикладного программирования Win32
Компоненты окна
Взаимодействие прикладных программ с Windows
Базовые концепции функционирования приложений для Windows 2000
Скелет программы для Windows 2000
Файл описания больше не нужен
Соглашение об именовании
Глава 27. Проектирование программ с помощью C
Проектирование сверху вниз
"Пуленепробиваемые" функции
Использование программы MAKE
Применение интегрированной среды разработки
Глава 28. Производительность, переносимость и отладка
Эффективность
Перенос программ
Отладка
Часть VI. Интерпритатор языка C
Глава 29. Интерпритатор языка C
Практическое значение интерпритатора
Определение языка Little C
Интерпретация структурированного языка
Неформальная теория языка С
Синтаксический анализатор выражений
Интерпретатор Little C
Библиотечные функции Little C
Компиляция и компановка интерпретатора Little C
Демонстрация Little C
Усовершенствование интерпретатора Little C
Расширение Little C