2009-03-29 24 views
5

Estoy buscando una biblioteca para C que me brinde al menos algunas de las cosas que realmente extraño de C++ y STL/Boost. (Tengo que usar C, así que por favor no "el uso de C++" mensajes)Biblioteca estándar madura para C

necesito

  1. cuerdas dinámicas (que crecen y decrecen de forma automática)
  2. algún tipo de lista (std :: vector de reemplazamiento)
  3. algo así como stringstream (para las conversaciones de tipo & tampones)

Además, se tiene que tener una implementación de código abierto y maduro y tiene que ser independan plataforma t (se requiere que Windows, Linux y Mac sean compatibles).

¿Alguna recomendación?

+0

Su título cuestión es un término equivocado; lo que busca es una biblioteca madura no estándar para C. La biblioteca estándar para C no proporciona lo que solicita. –

+0

Creo que Jonathan tiene razón, pero lo leí. Cuénteme acerca de una biblioteca de estructura de datos útil de C – Friedrich

Respuesta

14

¿Qué tal el GLib de GTK?

+0

Parece interesante, ¿tiene alguna experiencia con ella? ¿Es utilizable y no demasiado complicado para aprender? – Milan

+0

Lo siento, no tengo ninguna experiencia con eso. AFAIK, la forma "nativa" de wirte para GNOME está en C (no en C++) con GLIB. Además, el autor del IRC client irssi (http://irssi.org) lo usa. Así que mucha gente lo está usando (no es que esto implique software de alta calidad en todos los casos ...) – Manuel

+0

glib es muy fácil de usar. Es muy consistente y una de las mejores bibliotecas de software "gratuitas". – Friedrich

4

Recomendaría el Apache Portable Runtime. Es razonablemente pequeño, portátil y potente: al menos potencia el Apache httpd en múltiples plataformas.

+0

Gracias por su sugerencia. – Milan

2

Siempre puede considerar incorporar un tiempo de ejecución de lenguaje dinámico en su aplicación. El núcleo Lua no es grande en absoluto, proporciona tipos de datos que cumplen con sus requisitos, es de código abierto y tiene licencia de MIT, por lo que es compatible tanto con FOSS como con proyectos comerciales.

No es necesario que use el código escrito en Lua para beneficiarse, ya que su API C proporciona acceso completo a sus tipos de datos y sus valores. Sin embargo, más adelante podría trasladar parte de la lógica de su aplicación a Lua, para mejorar la claridad de expresión y otros beneficios de la codificación en un lenguaje dinámico con funciones como valores de primera clase.

Cuestiones relacionadas