gpt4 book ai didi

c - 遇到错误: invalid operands to binary & and error: invalid operands to binary |?怎么办

转载 作者:太空宇宙 更新时间:2023-11-04 05:44:26 29 4
gpt4 key购买 nike

#include <signal.h>
#include <errno.h>

#define SIGBAD(signo) ((signo) <= 0 || (signo) >= NSIG)

int sigaddset(sigset_t *set, int signo)
{
if (SIGBAD(signo)) { errno = EINVAL; return(-1);}

*set |= 1 << (signo - 1);
return 0;
}

int sigdelset(sigset_t *set, int signo)
{
if (SIGBAD(signo)) { errno =EINVAL; return -1; }

*set &= ~(1 << (signo - 1));
return 0;
}

int sigismember(const sigset_t *set, int signo)
{
if (SIGBAD(signo)) { errno = EINVAL; return -1; }

return ((*set & (1 << (signo -1))) != 0);
}

最佳答案

这意味着您正在尝试对不是整数的东西进行位运算,例如一个结构。

对于 sigset_t,已经存在名为 sigaddset 的函数, sigdelsetsigismember ,你不应该重新实现它们。 sigset_t 是一个不透明的东西,除了 sigXXXset() 函数之外,你不应该在其中探索它

关于c - 遇到错误: invalid operands to binary & and error: invalid operands to binary |?怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9584428/

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