gpt4 book ai didi

c - 为什么要在宏定义中使用 do { } while (0)?

转载 作者:太空狗 更新时间:2023-10-29 16:32:56 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Why are there sometimes meaningless do/while and if/else statements in C/C++ macros?

我遇到了如下代码:

#define ev_io_init(ev,cb,fd,events) \
do { \
ev_init ((ev), (cb)); \
ev_io_set ((ev),(fd),(events)); \
} while (0)

我想知道作者为什么在这里使用do { } while (0)。这有什么区别吗?

#define ev_io_init(ev,cb,fd,events) { \
ev_init ((ev), (cb)); \
ev_io_set ((ev),(fd),(events)); \
}

顺便说一句:代码来自libev,ev_local.h

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