void (* log_msg)(char *msg) .
typedef void (*LoggerFunctionPointer)(char* msg);
LoggerFunctionPointer log_msg = printf;
, log_msg printf, , log_msg , , printf.
, log_msg . , ,
void no_log_msg(char* msg) {}
...
if (enable_debug) {
log_msg = printf;
} else {
log_msg = no_log_msg;
}
, , .
(BTW, , printf int printf(const char*, ...). , log_msg
int (*log_msg)(const char*, ...) = printf;
)