C言語なら俺に聞け! Part 120
■ このスレッドは過去ログ倉庫に格納されています
0490490
2006/01/22(日) 00:54:39// パターンB
for ( i=0; i<100; i++ ) {
switch (a[i]) {
case 1234:
for ( j=0; j<500; j++ ) {
前処理A;
共通処理( a[i] );
}
break;
case 5678:
for ( j=0; j<1000; j++ ) {
前処理B;
共通処理( a[i] );
}
break;
default:
共通処理( a[i] );
}
}
----------------------------------------
パターンAは、ソースはすっきりしていますが、
繰り返す数を保持するためだけの配列 b が、無駄かつ莫大なメモリを使用しています。
また、「1234」「5678」という直値が二箇所ずつ埋まっているのもいけません。
パターンBは、共通処理の部分が複数箇所存在するため見た目も悪いですし、
ここを変更しようとすると、すべての箇所を書き換えなければなりません。
どうか、良い方法があればご教授ください。
目指しているのは、1に省メモリ、2に高速化です。
■ このスレッドは過去ログ倉庫に格納されています