Существует ли стандартный набор библиотек для динамических строк, списков и словарей в C? - PullRequest
0 голосов
/ 31 декабря 2010

Я заинтересован в том, чтобы войти в C, чтобы приблизиться к металлическому исполнению, но хотел бы писать в стиле Pythonic и не хочу создавать собственные динамические строки, списки и словари.Cython довольно хорош, но хотел бы знать, как использовать динамические переменные в прямом C, если это возможно.

С C ++, конечно, есть STL, который даст вам String, Vector и Map.Конечно, одна возможность - программировать в C-подобном стиле на C ++, используя только эти функции.Это стандартная практика, если вам нужны динамические переменные в C?

Ответы [ 2 ]

4 голосов
/ 31 декабря 2010

glib довольно хорош и широко используется:

GLib предоставляет основные строительные блоки приложений для библиотек и приложений, написанных на C. Он предоставляет базовую объектную систему, используемую в GNOME.реализация основного цикла и большой набор служебных функций для строк и общих структур данных.

На самом деле, glib предоставляет больше (намного больше ...), чем просто ADT для строк,списки и диктанты.Но вы можете легко начать, просто используя эти части, расширив их позже.


Тем не менее, не думайте, что наличие динамических строк, списков и словарей сделает ваш код Pythonic.Подавляющее большинство приложений на C выше некоторого уровня сложности имеют реализации таких структур данных, но я не знаком ни с одним из таких приложений, написанных в «Pythonic style».

3 голосов
/ 31 декабря 2010

Используйте C ++; у него есть стандартные и высоко оптимизированные версии всех этих. Нет абсолютно никакой причины или пользы ограничивать себя C.

(ed: Другими словами, да, это очень стандартная практика. Помните, что при использовании C ++ не требуется использовать какие-либо функции C ++; по конструкции вы можете выбирать и выбирать. Я часто отключаю исключения, например, поскольку это приводит к массовому раздутию исполняемых файлов. Нет просто никакой причины писать код на C.)

...