gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 20:45:57 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
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) (... 作为其他代码的占位符)的用途是什么,因为它会,据我所知,与使用 ... 完全相同。

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

#define Py_DECREF(op)                                   \
do { \
if (_Py_DEC_REFTOTAL _Py_REF_DEBUG_COMMA \
--((PyObject*)(op))->ob_refcnt != 0) \
_Py_CHECK_REFCNT(op) \
else \
_Py_Dealloc((PyObject *)(op)); \
} while (0)

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com