【发布时间】:2020-09-24 05:49:43
【问题描述】:
宏定义如下:
#define open_listen_fd_or_die(port) \
({ int rc = open_listen_fd(port); assert(rc >= 0); rc; })
open_listen_fd() 是一个函数,它返回整数值。
我的问题:第三个声明rc;有什么意义?
【问题讨论】:
-
@Shawn 所以,rc 的值会返回给宏的调用者。我说的对吗?
-
是的……这些是可怕的、非标准的,永远不应该使用。请改用(内联)函数。
-
这些宏肯定不优雅 0_0
-
@Yunnosch 现在我有时间写一个正确的答案了