作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 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/
在 GNU C 库的 sys/select.h 中有一个宏定义如下 #define __FD_ISSET(d, set) \ ((__FDS_BITS (set)[__FD_ELT (d)] &
我是一名优秀的程序员,十分优秀!