2016-09-26 4 views
-3

Я хочу очистить некоторые биты массива char в c! Я хотел бы знать, если это быстрее, чтобы очистить 4 бита (например) таким образом:Очистка char-array

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; 
} 

или сняв весь массив с помощью

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

массив инициализируется

unsigned char data[2][3][10][30][2]; 
+6

Я действительно видел 5-мерный массив? Не обижайтесь, время для рефакторинга кода. –

+0

Это интересный массив, чтобы сказать наименьшее. –

+0

Протестируйте его самостоятельно, используя класс 'time' в начале и в конце, затем вычислите разницу –

ответ

-2

Это зависит от оптимизации кода во время компиляции. Каждый компилятор использует различную оптимизацию. (ССАГПЗ/MS Visual Studio/и т.д ...)

Я думаю, что никто не компилируется без оптимализации в настоящее время.

Лучший способ сравнить, какой метод быстрее это сделать свой собственный тест.

Попробуйте каждый метод на самом деле большие объемы данных. Регистрируйте timediff перед очисткой и после очистки для каждого метода и используйте наиболее быстрый.

Я думаю MemSet является самым быстрым. Просто попробуй.

+0

Это было бы подходящим комментарием. – alk

Смежные вопросы