给出以下根据C99标准编写的代码:
#define LOW 1
#define MEDIUM 2
#define HIGH 3
#define LOGGING_LEVEL HIGH
#if LOGGING_LEVEL >= MEDIUM
#define LOG_MEDIUM(message) printf(message)
#else
#define LOG_MEDIUM(message) ((void)0)
#endif
void load_configuration() {
//...
LOG_MEDIUM("Configuration loaded\n");
}
((void)0)
的目的是我在网上搜索了很多,但对此一无所获。
另外,为什么我们在使用;
之后不写printf(message)
主要思想是,如果不符合条件,则排除所有LOG_MEDIUM
。编译之后,这些调用将不会影响功能。