2016-09-26 1 views
-3

cで文字配列のいくつかのビットをクリアしたい! は、私はそれが(例えば)4ビットをクリアするために高速です場合は、この方法を知りたいと思った:文字配列をクリアする

for(int i =0; i<3; i++){ 
array[2][i][9][14][1] = 0; 
array[2][i][8][14][1] = 0; 
array[2][i][7][14][1] = 0; 
} 

や配列が

unsigned char data[2][3][10][30][2]; 
によって初期化され

memset(&array[0], 0, sizeof(array)); 

を使用して配列全体をクリアすることにより、

+6

私は実際に5次元アレイを見ましたか?犯行はなく、コードをリファクタリングする時間。 –

+0

これは面白い配列です。 –

+0

開始時と終了時に 'time'クラスを使って自分でテストしてから差を計算してください。 –

答えて

-2

コンパイル時のコードの最適化によって異なります。 異なる最適化を使用するすべてのコンパイラ。 (gcc/msビジュアルスタジオなど)

今日は誰も最適化せずにコンパイルできないと思います。

どの方法が高速かを比較する最良の方法は、独自のベンチマークを作成することです。

非常に大きなデータですべての方法を試してください。クリーニング前とクリーニング後のタイムディフェンスをすべての方法で記録し、最も速く使用する。

私はmemsetが最速だと思います。ちょうど試して。

+0

これはコメントとして適しています。 – alk

関連する問題