質問編集履歴
2
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -73,5 +73,5 @@
|
|
73
73
|
「4バイトのint型を連続に並べてint型のアライメントを2に小さくすれば、データを共有できるのでは?」← これ不可能ですね。
|
74
74
|
|
75
75
|
4バイトint型のアライメントを2にすると、2個の1byteが連続で並び、その2つの組は連続であることは保証されなくなる。ということですかね。
|
76
|
-
int 4byte => [
|
76
|
+
int 4byte => [1byte][1byte][ ][ ][1byte][1byte]
|
77
77
|
メモリレイアウトはこんな感じになるんですかね。
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,4 +51,27 @@
|
|
51
51
|
これでは読み書きの高速化には繋がらないような・・・気がしますが・・・
|
52
52
|
|
53
53
|
分かる方教えてください。
|
54
|
-
どこかにとんでもない勘違いをしている可能性があります。
|
54
|
+
どこかにとんでもない勘違いをしている可能性があります。
|
55
|
+
|
56
|
+
[追記]
|
57
|
+
んんんん!!ああ!やっとわかったかもしれません。
|
58
|
+
|
59
|
+
「1byteの連続な列を4つまとめて、int型としたとしましょう。」
|
60
|
+
これがまさにアライメントなのですね!
|
61
|
+
|
62
|
+
つまり、4つの1byteなデータを連続して並べる事をアライメント・・・って言うんですね!
|
63
|
+
(間違っていたら教えてください。)
|
64
|
+
|
65
|
+
[データ型のアラインメントとは何か,なぜ必要なのか?](http://www5d.biglobe.ne.jp/~noocyte/Programming/Alignment.html#CompositeDataAlignment)
|
66
|
+
アラインされていないデータへのアクセスの蘭のを見てみると、4バイトデータXがバラバラの位置に配置されていますよね。
|
67
|
+
|
68
|
+
これを、**4つ連続に並べること**こそがアライメントなんでしょうか??
|
69
|
+
(だとしたら、アライメントの理解を完全に間違っていたことになります。)
|
70
|
+
|
71
|
+
もしそうだとしたら・・・
|
72
|
+
いままで、こんなことを考えていました。
|
73
|
+
「4バイトのint型を連続に並べてint型のアライメントを2に小さくすれば、データを共有できるのでは?」← これ不可能ですね。
|
74
|
+
|
75
|
+
4バイトint型のアライメントを2にすると、2個の1byteが連続で並び、その2つの組は連続であることは保証されなくなる。ということですかね。
|
76
|
+
int 4byte => [char][char][ ][ ][char][char]
|
77
|
+
メモリレイアウトはこんな感じになるんですかね。
|