当前位置:  开发笔记 > 编程语言 > 正文

C中的这个操作是什么?

如何解决《C中的这个操作是什么?》经验,为你挑选了1个好方法。

我开始使用termcaps,我看到了这种操作.

term.c_lflag &= ~(ICANON);

我知道&=是一个binary AND,我不是很舒服.

为什么不简单地使用=或制作一个#define,又&= ~做什么?



1> unwind..:

假设ICANON是一个位掩码,即一个位设置为表示某个特征的整数,该语句将确保设置这些位c_lflag.

这通常被称为"屏蔽"这些位.

该操作是按位反转(~按位反转)的按位AND .

因此,如果在操作之前值为c_lflag3(二进制11 2),并且ICANON值为2(二进制10 2),则它将变为1,因为它是按位-AND:ed,~2其中所有位都设置为除了位数以外的值1(二进制... 11101 2).

它也可以更详细地写成

term.c_lflag = term.c_lflag & ~ICANON;

ICANON不应该需要括号.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有