标签存档: 运算符

优先级啊优先级

if (BIT2 == (P1IN & BIT2)) 与 if (BIT2 == P1IN & BIT2)

真是坑爹啊,
==、!= 运算符优先级是7,
& 优先级是8
^ 优先级是9
|  优先级是10

哎,还是唯一解决办法,终极解决办法,统统加括号!!!

你认为 i<<4+1 等于多少呢

运算符的优先级是个很要命的问题,如题,你认为结果是多少呢。我想当然的认为是先移位后加一,但是实际的优先级是加法高于移位。加减法位与第4优先级,左移和右移位与第5优先级。要记住这每一个运算符的优先级也不是一件容易的 事,最简单的办法还是不论是什么样的计算,统统用括号来规定优先级。

是很简单,但是让我晕了——自加与自减运算

自加自减确实容易让人晕,看看下面的代码。是不是也会像我一样晕。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int a = 0,b = 0;
int c = 0;
void main()
{
  while(1)
  {
    if (a == 0)
    {
      b += 1;
    }

    if (a++ == 5)
    {
      c = 0;
      a = 0;
    }
  }
}

继续阅读 »