回答編集履歴
2
グローバル変数なので代入は消せない
test
CHANGED
@@ -6,4 +6,4 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
一方で、リリースビルドにすると、`dt1`、`dt2`、`dt3`は代入
|
9
|
+
一方で、リリースビルドにすると、`dt1`、`dt2`、`dt3`への代入は「同じ」`vdata`の値を代入するので、一度読み取ってレジスタに置いておいて、2回め以降はそれを使い回す、という最適化が可能となります。`volatile`ありの時はそうもいかないので、`vdata`の読み取りをソースコード上と同じく、3回行います。
|
1
最適化レベルの注記
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
デバッグモードでは、デバッグの都合上、「C言語での行」と対応付けをするように機械語を生成しますので、最適化は基本的に行われません。
|
5
|
+
デバッグモードでは、デバッグの都合上、「C言語での行」と対応付けをするように機械語を生成しますので、行を超えるような最適化は基本的に行われません。
|
6
6
|
|
7
7
|
|
8
8
|
|