【发布时间】:2011-10-19 10:13:53
【问题描述】:
是否有通常用于检查标志是否存在于 int/其他数据类型中的方法?我想出了这样的事情:
if ((host&flagtocheckfor)==flagtocheckfor)
哪种方法可以正常工作-但是,这是一种设置标志的常用方法,这是通常检查标志的方式吗?还是有更简洁的方法?
【问题讨论】:
-
您不需要 ==flagtocheckfor 部分。 & 的结果是 0(位关闭)或非 0(位打开),至少在 C 中,它已经对应于 False 和 True。
-
@librik,单位掩码没问题,但有些可能是多位掩码。看我的回答。
标签: language-agnostic bit-manipulation flags