C言語での簡単な例とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > C言語での簡単な例の意味・解説 

C言語での簡単な例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/10/23 06:34 UTC 版)

ループ展開」の記事における「C言語での簡単な例」の解説

あるプログラムの手続きで、データ集合体から100個の要素削除(delete)する必要があるとする。このためfor ループ内で関数 delete(要素番号) を呼び出す。この部分最適化する場合ループ必要なオーバヘッドリソース多大に消費しているなら、ループ展開性能向上する通常のループループ展開後 int x; for (x = 0; x < 100; x++) { delete(x); } int x; for (x = 0; x < 100; x+=5) { delete(x); delete(x+1); delete(x+2); delete(x+3); delete(x+4); } この修正結果新たなプログラムループ回数100 回から 20 回に削減されるジャンプ命令条件付分岐命令実行回数5分の1となり、ループそのものの処理にかかる時間大幅に削減される可能性がある。その効果最大にするため、展開されコードではポインタ計算をしないようにすることが重要である。そのため通常インデックスによる参照からベースオフセットによる参照転換する必要がある一方ループ展開によってコードサイズは 3 行から 7 行に増えコンパイラ展開され部分で必要となる変数格納するレジスタをさらに必要とすることになる可能性がある。加えて、展開前と展開後で処理結果同じになるように、ループ変数ループ内での操作注意深く行わなければならない例えば、上の例で 6 回ぶんのループ展開した場合100 は 6 で割り切れないため、展開前と同じ結果を得るには細工が必要となる。また、ループ終了条件変数だった場合にはさらに問題複雑化する。Duff's device参照されたい。

※この「C言語での簡単な例」の解説は、「ループ展開」の解説の一部です。
「C言語での簡単な例」を含む「ループ展開」の記事については、「ループ展開」の概要を参照ください。

ウィキペディア小見出し辞書の「C言語での簡単な例」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「C言語での簡単な例」の関連用語

C言語での簡単な例のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



C言語での簡単な例のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのループ展開 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS