gpt4 book ai didi

c - __FD_ISSET 宏函数如何工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:45 28 4
gpt4 key购买 nike

在 GNU C 库的 sys/select.h 中有一个宏定义如下

#define __FD_ISSET(d, set) \
((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0)

有人能解释一下第二行实际上是如何展开的以及它是如何工作的吗?__FDS_BITS/__FD_ELT/__FD_MASK 在哪里定义? (他们自己是宏吗?)

最佳答案

在我的系统(Debian/GNU Linux)上,它是这样定义的:

# define __FDS_BITS(set) ((set)->__fds_bits)
#define __FD_ELT(d) ((d) / __NFDBITS)
#define __FD_MASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS))

FD_ISSET does you can find in manual (man FD_ISSET, or man 2 select)

关于c - __FD_ISSET 宏函数如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30574656/

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