2017-03-27 5 views
0

大規模なインターウェブを見て、私はこれに対する答えを見つけることができませんでした。このように書かれていませんif(P4IN & GPIO_PIN1?0:1)ようCの三項文をif条件の中で宣言されたif/elseに変換する方法は?

if(P4IN & GPIO_PIN1?0:1){ 
     if (state==1){ 
      state = 0; 
      //Wait for this state to pass -- ends up saving the current state on button press. 
      while (counter < 10000){ 
       counter++; 
      } 
     } 
     else{ 
      state = 1; 
      while (counter < 10000){ 
       counter++; 
      } 
     } 
    } 

どのように私はこれを書き換えます:

は、私は、コードのこの部分を持っていると言います。余分なif/else条件を作成したり、このコードブロックを拡張しても構わない(MSP432用)

ありがとう、ありがとう。

+7

'(P4IN&GPIO_PIN1 0?:1)であれば、' - > '(もし!(P4IN&GPIO_PIN1))' –

+1

...そしてあなたもし入力ピンが外部スイッチに接続されていれば、デバウンスを管理するべきでしょう。 – LPs

+2

'&'は三項よりも優先順位が高いので、元の文はいくつかの括弧を使ってもっと明瞭にすることができます。 – stark

答えて

7

あなたはこれに全体を簡素化することができます。

if (!(P4IN & GPIO_PIN1)) { 
    state = !state; 

    while (counter < 10000) { 
    counter++; 
    } 
} 
+2

...または ' = 1; '....;) – LPs

関連する問題