План на курса
Въведение
- Обзор на характеристиките и приложенията на C
Подготовка на средата за разработка
- Избор на интегрирана среда за разработка (IDE)
- Конфигуриране на компилатора
Създаване на примерен програмен код
- Определяне на проблема
- Кодиране според изискванията
Определяне на обхвата на променливите и функциите
- Разбиране на обхват, видимост и продължителност
- Работа с класове на памет: auto, extern, register, static
Управление на данни в C програма
- Задълбочаване в примитивни типове данни
- Работа с напреднали типове данни: структури, свързани списъци и т.н.
- Съхранение на различни типове данни в едно място в паметта
Модифициране на свойствата на променлива
- Задълбочаване в модификатори на типове
- Работа с квалификатори на типове: константен, променлив и т.н.
Манипулиране с битове в C
- Работа с данни по-малки от байт
- Работа с битови оператори за манипулиране
Контролиране на потока на програмата
- Задълбочаване в последователност
- Използване на оператора goto
Четене и записване на данни
- Обзор на функции за вход/изход
- Увеличаване на четливостта на изхода
Разработване на код за различни платформи
- Разбиране на директиви за компилатор
- Условно компилиране на код
Увеличаване на производителността на програмата
- Макроси срещу функции
- Определяне на макроси за изпълнение на фрагменти от код
Динамично заделяне на памет
- Преимущества на използване на показващи: скорост на изпълнение
- Показващи към функции
- Достъп до памет и манипулиране на адреса
Отстраняване на грешки в C програма
- Напреднали техники за проверка, откриване и поправка на грешки
- Работа с gdb (GNU отстраняващ грешки)
Създаване на статична библиотека
- Как статична библиотека се свързва с изпълнимия файл
- Създаване на статична библиотека
Създаване на споделена библиотека
- Статични библиотеки срещу споделени библиотеки (динамични библиотеки)
- Как споделена библиотека се свързва и заредява в паметта при изпълнение
- Създаване на споделена библиотека
Абстрахиране на данни в програмата
- Обзор на интерфейс, спецификация и реализация
- Създаване на абстрактен тип данни
- Тест на абстрактен тип данни
Търсене и сортиране на данни
- Търсене на масиви чрез линейно търсене, двоично търсене и т.н.
- Сортиране на масиви чрез сортиране по избор, вмъкване, мехурчесто сортиране
Взаимодействие между процеси и сигнали
- Разбиране на процеси, сокети и сигнали
- Имплементиране на IPC чрез споделени файлове, споделена памет, тъй-пий-пи, опашки за съобщения, сокети, семафори и т.н.
Пускане на C програма в паралел
- Пуска на различни части от една програма едновременно чрез многонишковия принцип
- Писане на нишка
Напредна мрежова програмиране
- Обзор на TCP, UDP, IP и други доминиращи протоколи
- Обединяване на няколко порта, оцеляване при внезапни прекъсвания на мрежата и т.н.
- Писане на мощни API на сокети
Качество на кода
- Парно преглеждане на кода и паралелно програмиране
- Значението на итеративно кодиране (рефакториране)
Резюме и заключение
Изисквания
- Опит в програмиране на C
Целева аудитория
- Програмисти
- Разработчици
Отзиви от потребители (2)
упражненията и методиката
Javier MIllan Rios - si
Курс - Advanced C Programming
Машинен превод
Интересен и широк обхват
Maciej Perkowski - Nordic Semiconductor
Курс - Advanced C Programming
Машинен превод
