Наборы стандарта языка C, где они?

Я принял на себя обязательство изучать C теперь, я хорош с Python/PHP/Bash, но я решил, что ограничен, не бегло говоря C. Однако я не могу предположить работать на языке без списков и хешей, возможно, я просто перехожу оружие, но конечно существуют 'стандартные' библиотеки набора. Я не вижу никого в lib стандарта GNU хотя, какие-либо предложения?

16
задан flaxeater 23 March 2010 в 18:43
поделиться

6 ответов

Не существует "стандартного" набора классов коллекции для C. Многие люди просто катят свои собственные по мере необходимости.

Но, конечно, есть библиотеки, восполняющие этот пробел. Например, glib предлагает связанные списки, хэш-таблицы и различные виды деревьев.

15
ответ дан 30 November 2019 в 17:04
поделиться

Не существует «стандартных» (как часть стандарта ISO C) контейнерных библиотек, по крайней мере, начиная с C99. Я видел несколько сторонних попыток; все имели ту или иную степень утраты.

C имеет очень примитивный и скудный инструментарий; Я сравнил программирование на C со строительством дома, используя только ручную пилу и молоток.

0
ответ дан 30 November 2019 в 17:04
поделиться

На самом деле нет стандартных коллекций в C. Поскольку это язык очень низкого уровня (по сравнению с C ++ и более «современными» языками)

C ++ добавляет их через Стандартную библиотеку шаблонов . Большинство «коллекций», таких как хеширование и списки, основаны на объектно-ориентированных или общих методах программирования, недоступных (кроме соглашений) в C.

0
ответ дан 30 November 2019 в 17:04
поделиться

Нет стандарта, но есть отличная альтернатива это намного проще, чем glib : Интерфейсы и реализации C Дэйва Хэнсона . Он включает несколько эффективных абстракций коллекций и ряд других полезных модулей. Программа бесплатна, а книгу стоит покупать.

2
ответ дан 30 November 2019 в 17:04
поделиться

C ниже уровня, чем вы привыкли. За пределами массива в C нет стандартных коллекций.

12
ответ дан 30 November 2019 в 17:04
поделиться

Может, тебе стоит попробовать заглянуть в бойкую. Хотя это не стандарт в том же смысле, что и STL для C ++, это проверенная библиотека, которая используется во многих приложениях.

http://library.gnome.org/devel/glib/2.22/

5
ответ дан 30 November 2019 в 17:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: