Где я могу найти хорошие, проверенные рекомендации или примеры написания расширяемого, модульного, слабосвязанного кода на C (если возможно)?
Основой нашей проблемы является то, что мы поддерживаем большой простой проект кода C, устаревший код для недорогого микроконтроллера с ограниченными вычислительными ресурсами и ресурсами памяти. Из-за того, что система должна быть чрезвычайно надежной и память ограничена, одно из первых ограничений - не использовать динамическое распределение памяти. Все структуры отображаются статически.
Итак, мы ищем способы сделать этот код более удобным и более модульным. Мы не интересуемся стандартами кодирования, а скорее конструктивными предложениями. У нас есть хорошие соглашения о кодировании (имена, организация кода, SVN), поэтому это не проблема.
Из того, что я видел в Интернете (возможно, я ошибаюсь), кажется, что большинство программистов, которые программируют исключительно на простом C или ассемблере, по крайней мере в сообществе uC/Embedded, не могут использовать ничего более простого процедурного программирования.
Например, мы могли бы получить большую часть преимуществ ООП и развязать в простой C, используя функции обратного вызова, структуры, содержащие указатели на функции и подобные вещи (для этого не требуется динамическое распределение, просто проходящее вокруг указателей на структуры), но мы бы как посмотреть, есть ли уже проверенные методы.
Знаете ли вы о таких ресурсах или имеете похожие предложения помимо ", почему бы вам не перейти на С++ или другой язык программирования??
[изменить]
Спасибо всем за ответы, у меня не было времени их изучить. Платформа - 16-разрядная (XC166 или аналогичная) uC, голая hw (без RTOS).