回答編集履歴

2

修正

2019/08/05 14:22

投稿

Zuishin
Zuishin

スコア28660

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- outb という名前の char 配列を用意し、その要素数を 66 と定めて outb[0] を 0 に初期化しています。ここはおそらくバグ入りで、outb[~~64~~65] を 0 にしたかったんだと思います。
5
+ outb という名前の char 配列を用意し、その要素数を 66 と定めて ~~outb[0] を 0 に初期化して~~います。~~ここはおそらくバグ入りで、outb[65] を 0 にしたかったんだと思います。~~
6
6
 
7
7
 
8
8
 

1

修正

2019/08/05 14:22

投稿

Zuishin
Zuishin

スコア28660

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- outb という名前の char 配列を用意し、その要素数を 66 と定めて outb[0] を 0 に初期化しています。ここはおそらくバグ入りで、outb[64] を 0 にしたかったんだと思います。
5
+ outb という名前の char 配列を用意し、その要素数を 66 と定めて outb[0] を 0 に初期化しています。ここはおそらくバグ入りで、outb[~~64~~65] を 0 にしたかったんだと思います。
6
6
 
7
7
 
8
8
 
@@ -10,7 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- i は outb 中のインデクスを表します。i = 0 の時、outb[i] は outb[0] を指します。これを 64 から(正確には --i なので事実上 63 から)カウントダウンさせることにより、outb の内容を後ろから書き換えています。
13
+ i は outb 中のインデクスを表します。i = 0 の時、outb[i] は outb[0] を指します。これを 64 から~~(正確には --i なので事実上 63 から)~~カウントダウンさせることにより、outb の内容を後ろから書き換えています。
14
14
 
15
15
 
16
16
 
@@ -18,8 +18,8 @@
18
18
 
19
19
 
20
20
 
21
- 戻り値は、outb 内のアドレスです。たとえば outb[63] のみを書き換えた場合、outb[63] のアドレスが、outb[63] と outb[62] を書き換えた場合、outb[62] のアドレスが戻ります。
21
+ 戻り値は、outb 内のアドレスです。たとえば outb[~~63~~64] のみを書き換えた場合、outb[~~63~~64] のアドレスが、outb[63] と outb[~~62~~64] を書き換えた場合、outb[~~62~~63] のアドレスが戻ります。
22
22
 
23
23
 
24
24
 
25
- outb は char 配列なので、文字列として扱うことができます。たとえば outb[62] == '1', outb[63] == '2', outb[64] == '\0' であった場合、&outb[62] は文字列 "12" のアドレスになります。これを printf に渡すことにより、文字列を表示しています。
25
+ outb は char 配列なので、文字列として扱うことができます。たとえば outb[~~62~~63] == '1', outb[~~63~~64] == '2', outb[~~64~~65] == '\0' であった場合、&outb[~~62~~63] は文字列 "12" のアドレスになります。これを printf に渡すことにより、文字列を表示しています。