【发布时间】:2021-09-26 09:45:59
【问题描述】:
有人可以在接受的答案下回答我的问题吗?
我正在阅读:https://www.kernel.org/doc/htmldocs/kernel-api/API-test-and-set-bit.html,但不太了解。
-
如果该位已经为 1,它是保持 1 还是 0?
-
如果它是 0 并且我没记错那么它会变为 1?
-
这里的“位”是什么,输入可以是bool,是字节而不是位...
-
return 是否意味着在更改值后我们更改回其原始状态?如果是这样,那就没用了……
-
在 C++ 中,当我尝试调用它时,我得到:
使用未声明的标识符“test_and_set_bit”
抱歉,该页面根本不清楚。
用法:
typedef struct lock {
bool is_locked;
} lock_t;
void init(lock_t* l) {
l->is_locked = 0;
}
void lock(lock_t* l) {
while (test_and_set_bit
(l->is_locked));
}
void unlock(lock_t* l) {
l->is_locked = 0;
}
【问题讨论】:
-
@DarkAtom
its != it's -
@MatG 是的,对不起
-
@DarkAtom 该死的自动更正