当前位置: C语言 -- 标准库 -- <iso646.h> -- and_eq

and_eq宏


概要:

#define and_eq &=


描述:

该宏是赋值运算符&=的替代拼写方案。

a and_eq b等同于a = (a bitand b)


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
/*宏and_eq范例*/

#include <iso646.h>
#include <stdio.h>

int main(void)
{
    int a = 5;
    printf("a = %d", (a and_eq 7));

    return 0;
}


输出:

a = 5

(a and_eq 7)等同于a = (a bitand 7)

5的二进制形式为:0101

7的二进制形式为:0111

0 1 0 1
& 0 1 1 1
0 1 0 1

(5 bitand 7)的结果为5,所以(a and_eq 7)等同于a = 5;表达式a = 5一方面将变量a的值修改为5,另一方面整个表达式的值也为5,所以%d对应的值为5


相关内容:
and 表示&&的宏。
bitand 表示&的宏。