do {} while(0)有什么用?

时间:2012-02-16 18:29:52

标签: c++ python c semantics do-while

  

可能重复:
  Why are there sometimes meaningless do/while and if/else statements in C/C++ macros?
  What's the use of do while(0) when we define a macro?
  how does do{} while(0) work in macro?

我想知道使用do{ ... } while(0)...作为其他代码的占位符)的用途,据我所知,与使用{{1}完全相同}}

您可以在官方的 CPython 源代码中找到这样的代码。例如,...宏:

Py_DECREF

1 个答案:

答案 0 :(得分:5)

它使编译器需要;,因此宏看起来像一个函数调用:

Py_DECREF(x); // ok
Py_DECREF(x) // error
相关问题