这是某种优化吗? if(1){...} else(void)0

时间:2010-09-20 14:00:21

标签: c++ c

  

可能重复:
  Why are there sometimes meaningless do/while and if/else statements in C/C++ macros?

在OpenJDK的源代码中,我找到了这个宏:

#define PUTPROP(props, key, val) \
    if (1) { \
    // some code
    } else ((void) 0)

它可以按照人们的预期使用,例如:

PUTPROP(props, "os.arch", sprops->os_arch);

(如果您感兴趣,它位于文件jdk/src/share/native/java/lang/System.c

我想这是某种优化的事情。有人可以解释或提供链接吗?这很难谷歌。

在有人问之前:是的,我只是好奇。

0 个答案:

没有答案