Как написать многоразовые функции, которые делают журналирование - PullRequest
0 голосов
/ 03 июля 2011

Я пишу приложение на C. Я хочу разделить все на различные функции, так что main(), по сути, просто вызывает несколько функций. Теперь было бы хорошо, если бы эти функции можно было многократно использовать, чтобы другое приложение (например, надстройка) могло их использовать. Но эти функции регистрируют то, что они делают, потому что основное приложение предназначено для взаимодействия с пользователем - дополнительные программы не обязательно должны взаимодействовать с пользователями, и поэтому не должны вести регистрацию. *

Итак, программы, которые хотят использовать некоторые из моих функций, зависят не только от самих функций, но и от функции ведения журнала. Это еще хуже, если программа не хочет вести какую-либо запись. Как бы я решил это?

Ответы [ 2 ]

0 голосов
/ 04 июля 2011

В каждой функции может быть параметр, позволяющий указать, хотите ли вы, чтобы она выполняла ведение журнала, или нет - полезно, если вы считаете, что другие программы могут захотеть вести запись для определенных функций, но не для других.Или имейте функцию инициализации, которая включает / выключает регистрацию в течение всего времени выполнения.Или, как говорит @yi_H, используйте прагму компиляции, чтобы отключить ведение журнала.

Если эти функции действительно универсальны, вы, вероятно, также поместите их в статическую или динамическую библиотеку ссылок.Тогда наличие функции инициализации для установки режима ведения журнала имело бы более логичный смысл со структурной точки зрения.

0 голосов
/ 03 июля 2011

Вы можете сделать это так:

#ifdef LOGGING
//logging code
#endif
...