teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2021/01/30 10:00

投稿

thkana
thkana

スコア7738

answer CHANGED
@@ -1,3 +1,20 @@
1
1
  具体的になにか数値を入れてどう動くかトレースしてみたらいかがですか?
2
2
 
3
- あまりにめちゃくちゃ...
3
+ あまりにめちゃくちゃ...
4
+
5
+ ---
6
+
7
+ カンマ演算子は、`,`で区切られた式を左から順に評価(実行)し、最後(右端)の結果を返します。
8
+ なので、
9
+ `if(V1a==0 && V2a>=1,i1++){`
10
+ では、`V1a==0 && V2a>=1`を比較して結果を捨て、`i1++`でi1の値が0か0以外かでifの分岐を行います。
11
+
12
+ ` x1[i1] = micros();`
13
+ Arduino dueではunsigned intは32bit幅ですから、unsigned longの値をそのまま代入しています。
14
+
15
+ ` if(e1=1,e1<numa,e1++){`
16
+ 先程と同様カンマ演算子。`e1=1`で**e1に1を代入**して、`e1<numa`の結果を捨て、e1の値で分岐...これは先程1を代入したので1なので必ず真の分岐。
17
+ ` x1[e1]=x1[e1+1]-x1[e1];`
18
+ e1は2なので、**常に**x1[2]=x1[3]-x1[2];の演算をします。
19
+
20
+ これはあなたのやりたかったことでしょうか?