Ищите источник кусков кода среднего размера - PullRequest
12 голосов
/ 24 марта 2011

Чем дольше я работаю разработчиком на C, тем не менее у меня не хватает какого-то источника фрагментов кода среднего размера.

У меня есть источник фрагментов кода и библиотек, но я не могу найти хороший источник дляразмер кода между ними.Что-то, что является заголовком или файлом заголовка + реализации, но не является библиотекой, но включено в проект.

Материал, подобный динамическому массиву, или связанный список, или некоторые помощники по отладке или ведению журнала.

Я знаю, что это частично из-за менталитета DIY разработчиков на C, но я просто не верю, что люди не делятся такими вещами.

Ответы [ 5 ]

8 голосов
/ 04 мая 2011

Возможно, вы захотите проверить http://nothings.org для некоторых файловых (умеренных) проектов, которые включают декомпрессию (изображение), растеризацию шрифтов и другие полезные вещи.

4 голосов
/ 10 мая 2011

Вы также можете посмотреть на CCAN .

3 голосов
/ 26 марта 2011

http://www.koders.com/ стоит проверить.Вы можете найти что-то полезное время от времени.

Вы также можете отсортировать результаты по лицензии, что очень удобно.

0 голосов
/ 10 мая 2011

Я всегда сначала обращаюсь к исходному коду Python (C), когда ищу «лучший» способ кодирования чего-либо на языке C. Стиль кодирования C на языке Гвидо ван Россума лаконичен и ясен, учитывая количество функций и поддерживаемых функций.в стандартных библиотеках python почти всегда есть полезный фрагмент кода.

0 голосов
/ 24 марта 2011

Есть несколько утилитарных библиотек, которые быстро приходят на ум; glib предоставляет широкий спектр полезных небольших утилит, в том числе:

списки с двойными и односвязными связями, хэш-таблицы, динамические строки и утилиты строк, такие как лексический сканер,строковые чанки (группы строк), динамические массивы, сбалансированные бинарные деревья, N-арные деревья

(И да, glib полезен даже в неграфических средах; не позволяйте его фону GNOMEОбмани вас.:)

Переносимая среда выполнения Apache - это библиотека, которая помогает абстрагироваться от специфических для платформы знаний;Я видел несколько программ, использующих его.Кажется, что программисты довольны «Он работает на Linux», чтобы не беспокоиться о различиях между платформами и в результате отказаться от изучения еще одной библиотеки.Это больше похоже на набор инструментов системного уровня:

Распределение памяти и функциональность пула памяти, атомарные операции, динамическая обработка библиотек, файловый ввод-вывод, анализ аргументов команд, блокировка, хэш-таблицы и массивы, Mmapфункциональные возможности, сетевые сокеты и протоколы, функции потоков, процессов и мьютексов, функциональные возможности совместно используемой памяти, процедуры времени, службы идентификации пользователей и групп

...