gpt4 book ai didi

c++ - kevent.ident 是无符号整数,而文件描述符是有符号的?

转载 作者:行者123 更新时间:2023-11-28 03:16:27 28 4
gpt4 key购买 nike

我有一个 kevent ev 和一个 int sock = socket(...)。当我执行 ev.ident == sock 时,g++47 警告我 warning: comparison between signed and unsigned integer expressions [-Wsign-compare]。我的方法有什么问题??

最佳答案

如果您检查类型,它是 uintptr_t 类型,这是一个足够大的标准类型,可以容纳最大的整数或指针。这样它就可以用于任何可以轻松转换为整数的类型。来自FreeBSD kqueue manual page :

Value used to identify this event. The exact interpretation is determined by the attached filter, but often is a file descriptor.

所以我肯定会说这是设计使然。

如果你想摆脱这个警告,我建议你投套接字:

ev.ident == static_cast<uintptr_t>(sock)

关于c++ - kevent.ident 是无符号整数,而文件描述符是有符号的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16721440/

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