Заметил вот что автору поста хотелось поплеваться на чужой код. Большинство пунктов — придирки в стиле «этот код плохой, потому что я пишу подругому». Отсутсвтие malloc-ов — имхо ориентация на embedded, не более.
Соглашусь разве что с корявыми именами макросов. Еще глобальные переменные не помечены как static. У чисто-сишный программеров это часто на уровне рефлекса, а тут нету почему-то…