質問編集履歴
2
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -148,6 +148,6 @@
|
|
148
148
|
|
149
149
|
4バイトint型のアライメントを2にすると、2個の1byteが連続で並び、その2つの組は連続であることは保証されなくなる。ということですかね。
|
150
150
|
|
151
|
-
int 4byte => [
|
151
|
+
int 4byte => [1byte][1byte][ ][ ][1byte][1byte]
|
152
152
|
|
153
153
|
メモリレイアウトはこんな感じになるんですかね。
|
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -105,3 +105,49 @@
|
|
105
105
|
分かる方教えてください。
|
106
106
|
|
107
107
|
どこかにとんでもない勘違いをしている可能性があります。
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
[追記]
|
112
|
+
|
113
|
+
んんんん!!ああ!やっとわかったかもしれません。
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
「1byteの連続な列を4つまとめて、int型としたとしましょう。」
|
118
|
+
|
119
|
+
これがまさにアライメントなのですね!
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
つまり、4つの1byteなデータを連続して並べる事をアライメント・・・って言うんですね!
|
124
|
+
|
125
|
+
(間違っていたら教えてください。)
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
[データ型のアラインメントとは何か,なぜ必要なのか?](http://www5d.biglobe.ne.jp/~noocyte/Programming/Alignment.html#CompositeDataAlignment)
|
130
|
+
|
131
|
+
アラインされていないデータへのアクセスの蘭のを見てみると、4バイトデータXがバラバラの位置に配置されていますよね。
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
これを、**4つ連続に並べること**こそがアライメントなんでしょうか??
|
136
|
+
|
137
|
+
(だとしたら、アライメントの理解を完全に間違っていたことになります。)
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
もしそうだとしたら・・・
|
142
|
+
|
143
|
+
いままで、こんなことを考えていました。
|
144
|
+
|
145
|
+
「4バイトのint型を連続に並べてint型のアライメントを2に小さくすれば、データを共有できるのでは?」← これ不可能ですね。
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
4バイトint型のアライメントを2にすると、2個の1byteが連続で並び、その2つの組は連続であることは保証されなくなる。ということですかね。
|
150
|
+
|
151
|
+
int 4byte => [char][char][ ][ ][char][char]
|
152
|
+
|
153
|
+
メモリレイアウトはこんな感じになるんですかね。
|