トップページ > プログラム > 2014年06月11日 > XYJSlMo0

書き込み順位&時間帯一覧

36 位/189 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000001000100000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C/C++の宿題片付けます 167代目

書き込みレス一覧

C/C++の宿題片付けます 167代目
435 :デフォルトの名無しさん[sage]:2014/06/11(水) 12:37:51.24 ID:XYJSlMo0
>>427
420=422です 勝手なオレオレ用語使ってしまってごめんなさい
ポインタラッチ=ポインタをラッチ(保持)する=>>422の変更点1つ目 です(ラッチというとハードウェアの言葉だからソフトでは使わないかも)

1次元配列のほうが速いのは、時間を測った結果そっちのほうが速かったから
・・・というのは半分冗談半分ホントだけども

ポインタのポインタだと、一つ目のポインタの中身を知るためにメモリアクセスし、その値が指す先に再度メモリアクセスして値を取得する
(インデックス計算→メモリアクセス→インデックス計算→メモリアクセス)

1次元配列だと、インデックスの計算を複数回やった後に1度だけメモリアクセスする
(インデックス計算→インデックス計算→メモリアクセス)

この違いが後者のほうが速かったということ
基本的にはパイプライン処理してるプロセッサだとメモリアクセスはストールの原因になるので少ないほうが速い
(x86ってCISC?だけどパイプライン処理してる?よね?あまり詳しくないです)

実際にはほかの要因もいろいろあるはずで、処理時間は最終的には計測してみるのが確実

>>434
UCHAR (*tmpgyou)[][DIM3]は宣言がややこしいですが、配列を指すただのポインタ変数です
なので配列分の領域を持っているわけではないです
先頭アドレスを保持するためのポインタ変数として使ってるので意図通りですね
C/C++の宿題片付けます 167代目
445 :デフォルトの名無しさん[sage]:2014/06/11(水) 16:46:59.02 ID:XYJSlMo0
>>429,443
ttp://codepad.org/kjLe88XM


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。