Как отделить логику ведения журнала от бизнес-логики в программе на языке C? А на C ++?

В настоящее время я кодирую на C, и у меня есть много printfs, так что я могу иногда отслеживать поток моего приложения . Проблема в том, что иногда мне нужно больше подробностей, чем другим, поэтому я обычно трачу время на комментирование / раскомментирование кода C, чтобы получить соответствующий результат.

При использовании Java или C #, Как правило, я могу отделить мой код реализации от логики ведения журнала с помощью аспектов.

Есть ли какой-либо аналогичный метод, который вы используете в C, чтобы обойти эту проблему?

Я знаю, что могу поставить флаг DEBUG, который может быть либо включен или выключен, поэтому мне не нужно было бы все время комментировать / раскомментировать весь мой код каждый раз, когда я хочу либо показать, либо скрыть printfs. Вопрос в том, что я хотел бы также избавиться от логики журналирования в моем коде.

Если бы вместо CI кодировал на C ++, было бы лучше?

Edit

Кажется, есть AspectC ++ , так что для C ++, похоже, есть решение. А как насчет C?

Спасибо

7
задан devoured elysium 14 November 2010 в 16:22
поделиться