Depending on the value ENABLE_DEBUG, it is LOG_MSGeither defined as an alias for printf(), or defined as a no-op macro. It is understood that you can change the value to 0to disable debugging. This is a common technique, making it easy to switch between debug builds that display a lot of output and release builds that are silent.
#define LOG_MSG printf
This makes it an alias for printf().
#define LOG_MSG(...)
. , , , . , , . ... , . C99, C.
LOG_MSG("file not found\n");
LOG_MSG() , , .
printf("file not found\n");
;
, , , , , ... ( / ), stderr stdout:
#define LOG_MSG(...) fprintf(stderr, __VA_ARGS__)