pow(2,index)
является одним из наиболее неэффективных способов создания битовой маски. Я могу себе представить, что использование функции Аккермана могло бы быть хуже, но pow()
в значительной степени медленная сторона. Вы должны использовать (1<<index)
вместо этого. Кроме того, C'ish способ установить / очистить немного значения выглядит иначе. Вот недавний вопрос об этом:
Если вы хотите разбирать биты в C эффективным и переносимым способом, то вы действительно должны взглянуть на страницу с битами, которую все здесь предложат вам, если вы упомянете "биты" как-то:
Следующая кодовая последовательность:
if(result == 0)
return 0;
else
return 1;
можно записать как return (result != 0);
, return result
или return !!result
(если результат должен быть равен 0 или 1). Хотя это всегда хорошая идея, чтобы прояснить намерение, большинство программистов на Си предпочтут «результат результата»; потому что в C это способ прояснить ваше намерение . «If» выглядит ненадежно, как предупреждающая наклейка с надписью «Первоначальный разработчик - парень из Java и мало что знает о битах» или что-то в этом роде.
newReference = malloc(sizeof(char));
memset(newReference, 0, sizeof(char));
malloc + memset(x,0,z) == calloc();
У вас есть способ сообщить об ошибке (недопустимый индекс) для IEFBooleanArraySetBitAtIndex
, но не для IEFBooleanArrayGetBitAtIndex
. Это противоречиво. Обеспечьте единообразие отчетов об ошибках, иначе пользователи вашей библиотеки будут проверять ошибки.