gpt4 book ai didi

c - 在C语言中我如何 “reverse”这个运算符| =

转载 作者:行者123 更新时间:2023-12-02 05:22:00 25 4
gpt4 key购买 nike

我是C语言编程的新手,在以下情况下,我知道需要做什么,但我不确定该怎么做。我会尽量保持简单,如果我没有提供足够的信息,请告知我。

这行有一个.h文件:

#define NS_CONN_ENTITYTOOLARGE    0x2000

然后在C代码中设置以下标志:
connPtr->flags |= NS_CONN_ENTITYTOOLARGE;

然后在此测试中:
if (connPtr->flags & NS_CONN_ENTITYTOOLARGE) {
}

现在,我要做的基本上是“撤消”标志 NS_CONN_ENTITYTOOLARGE。经过一番谷歌搜索后,我发现 |=是一个“按位OR”,但是在学习了之后我并没有感到更多启发。我是否需要按位进行异或,非运算或其他运算?

这是我可以在头文件中找到的所有可能的标志值。
#define NS_CONN_CLOSED        0x1
#define NS_CONN_SKIPHDRS 0x2
#define NS_CONN_SKIPBODY 0x4
#define NS_CONN_READHDRS 0x8
#define NS_CONN_SENTHDRS 0x10
#define NS_CONN_KEEPALIVE 0x20
#define NS_CONN_WRITE_ENCODED 0x40
#define NS_CONN_FILECONTENT 0x80
#define NS_CONN_RUNNING 0x100
#define NS_CONN_OVERFLOW 0x200
#define NS_CONN_TIMEOUT 0x400
#define NS_CONN_GZIP 0x800
#define NS_CONN_CHUNK 0x1000
#define NS_CONN_ENTITYTOOLARGE 0x2000

最佳答案

connPtr->flags &= ~NS_CONN_ENTITYTOOLARGE;

这并不能完全“撤消” |=,因为对于 NS_CONN_ENTITYTOOLARGE中的某些或所有位,如果它们已经在变量中,则可能是空操作。在这种情况下,这些位也将被清除,无论它们是否首先存在。

关于c - 在C语言中我如何 “reverse”这个运算符| =,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6680306/

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