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

質問編集履歴

2

修正

2018/07/24 22:25

投稿

strike1217
strike1217

スコア651

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 => [char][char][   ][  ][char][char]
76
+ int 4byte => [1byte][1byte][   ][  ][1byte][1byte]
77
77
  メモリレイアウトはこんな感じになるんですかね。

1

追記

2018/07/24 22:25

投稿

strike1217
strike1217

スコア651

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
+ メモリレイアウトはこんな感じになるんですかね。