gpt4 book ai didi

C中的条件表达式

转载 作者:太空宇宙 更新时间:2023-11-04 05:24:51 25 4
gpt4 key购买 nike

#define sblock(sb, wf) ((sb)->sb_flags & SB_LOCK ? \
(((wf) == M_WAITOK) ? sb_lock(sb) : EWOULDBLOCK) : \
((sb)->sb_flags |= SB_LOCK), 0)

我无法理解最后一个元素“((sb)->sb_flags |= SB_LOCK), 0)”。 “0”对我来说似乎是不必要的。

最佳答案

看起来,这里的想法是在语句 ((sb)->sb_flags |= SB_LOCK) 的副作用发生后返回 0 作为表达式结果> 被处决。这 C comma operator 正在评估它的左侧丢弃结果,并返回右侧。

关于C中的条件表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34549309/

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