我有一个kevent ev
和一个int sock = socket(...)
。当我这样做时ev.ident == sock
,g++47 警告我warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
。我的方法有什么问题?
问问题
196 次
1 回答
2
如果您检查类型,它的类型uintptr_t
是标准类型,足以容纳最大的整数或指针。这样它就可以用于任何可以轻松转换为整数的类型。并且来自FreeBSD kqueue 手册页:
用于标识此事件的值。确切的解释由附加的过滤器决定,但通常是文件描述符。
所以我肯定会说这是设计使然。
如果您想摆脱警告,我建议您使用套接字:
ev.ident == static_cast<uintptr_t>(sock)
于 2013-05-23T18:58:16.933 回答