C -алгоритмы , как следует из названия, является набором общих структур данных и алгоритмов, реализованных в C99.
Время от времени я готовлюсь к техническим интервью, которые часто требуют, по крайней мере, некоторого базового понимания общих структур данных и алгоритмов. Эти вопросы должны оценить технический опыт кандидатов и способность думать на ее ногах. Однако в реальной жизни вы обязательно должны избегать повторного изобретения колеса и использовать хорошо зарекомендовавшие себя, рецензируемые библиотеки, такие как Boost для C ++.
Первая версия библиотеки была реализована только как заголовок.
Существуют компромиссы между доставкой библиотеки в формате только заголовком и использованием отдельных файлов для API и реализации. Подход только к заголовкам, хотя и не очень эффективный при создании больших проектов, имеет одно большое преимущество; Библиотека не должна быть отдельно скомпилирована, и вам нужно только #include соответствующий файл заголовка в вашем исходном коде.
Тем не менее, я в конечном итоге решил использовать отдельные файлы .h и .c для API и реализации, потому что он думает, что это более интуитивно понятно с точки зрения структуры кода.
Я использовал Googletest (GTEST) структуру. Это много раздуло репозиторий и может быть излишним для этого небольшого проекта, но, тем не менее, я хотел попробовать. Чтобы запустить тесты, просто выполните make test
Это образовательная и экспериментальная часть кода. Само собой разумеется, никогда не используйте такую реализацию алгоритма случайных игрушек, подобную этой, в любых условиях производства.
@lekkas