C宏,((void)0)是什么意思?

问题描述 投票:0回答:1

给出以下根据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)

c macos c99 void
1个回答
0
投票

主要思想是,如果不符合条件,则排除所有LOG_MEDIUM。编译之后,这些调用将不会影响功能。

© www.soinside.com 2019 - 2024. All rights reserved.