Me he comprometido a aprender C ahora, estoy bien con Python/PHP/Bash pero he decidido que estoy limitado por no ser fluido en C. Sin embargo, no me puedo imaginar trabajando en un lenguaje sin listas y hashes, tal vez Me estoy tirando un arma, pero seguramente hay bibliotecas de colección 'estándar'. No veo ninguno en la libra estándar de GNU, ¿alguna sugerencia?C Language Standard Collections ¿Dónde están?
Respuesta
No hay un conjunto "estándar" de clases de colección para C. Muchas personas simplemente hacer rodar los suyos según sea necesario.
Pero, por supuesto, hay algunas bibliotecas que llenan este vacío. Por ejemplo, glib ofrece listas enlazadas, tablas hash y varios tipos de árboles.
sí, esto es realmente lo que estaba preguntando. Vi que no había un 'estándar', pero sé que hay un conjunto de herramientas que la gente utiliza principalmente. Esto es probablemente así. :) Gracias – flaxeater
C es un nivel inferior al que está acostumbrado. No hay colecciones estándar en C fuera de la matriz.
Ya, OP se sorprenderá de que ni siquiera hay sobrecarga de funciones y no se pueden declarar variables en el medio de una función – Pyrolistical
@Pyrolistical C99 permite declaraciones de variables en el medio de una función – amrox
No estaba claro y me siento mal por eso, pensé que poner las comillas en "estándar" dejaba en claro que estaba pidiendo un estándar comunitario. – flaxeater
No hay colecciones muy estándar en C. Al ser un lenguaje de nivel muy bajo (en comparación con C++ y más idiomas "modernos")
C++ añade éstos a través de la Standard Template Library. La mayoría de las "colecciones" como hashes y listas se basan en técnicas de programación orientadas a objetos o genéricas que no están disponibles (excepto por convención) en C.
Tal vez deberías probar mirar en glib. Si bien no es un estándar en el mismo sentido que STL para C++, es una biblioteca comprobada y se usa en muchas aplicaciones.
No hay bibliotecas de contenedores "estándar" (como en parte de la norma ISO C), al menos no a partir del C99. He visto varios intentos de terceros; todos tuvieron algún grado de pérdida u otro.
C tiene un conjunto de herramientas muy primitivo y escaso; He comparado la programación en C con la construcción de una casa con nada más que un serrucho y un martillo.
No hay un estándar, pero hay una excelente alternativa que es mucho más simple que glib: Dave Hanson's C Interfaces and Implementations. Incluye varias abstracciones de recolección eficientes y una cantidad de otros módulos útiles. El software es gratuito y vale la pena comprar el libro.
Dependiendo de su sistema, puede encontrar lo que está buscando en sys/queue.h, que incluye "implementaciones de listas de enlace único, listas de doble enlace, colas simples y colas de espera".
- 1. Dónde se usa Python Language
- 2. ¿Dónde puedo encontrar una buena guía para escribir C Collections?
- 3. C# business objects and collections
- 4. ¿Dónde están las páginas man para C++?
- 5. Microsoft C++ Language Reference
- 6. Free C Language IDEs?
- 7. ¿Dónde están Jgit javadocs?
- 8. WPFToolkit.Extended: ¿dónde están las herramientas?
- 9. scanf() (C Language) me confundió
- 10. boost :: alternativa opcional en C++ Standard Library
- 11. ¿Dónde están escondidos mis recursos?
- 12. MVC Storefront - Kona - ¿Dónde están?
- 13. ¿Dónde están los módulos CommonJS?
- 14. OPCIONES SET .... dónde están almacenados
- 15. ¿Dónde están las anotaciones JDBC4?
- 16. ¿Dónde están los literales de dirección de función en C++?
- 17. ¿Dónde están los archivos de cabecera C en Windows?
- 18. Uso de Google-collections MapMaker?
- 19. Dónde están almacenados mis archivos de proyecto
- 20. Enum de Java ... ¿Dónde están creados?
- 21. ¿Dónde están las bibliotecas de Erlang?
- 22. JavaScript Collections API?
- 23. Cross Language Messaging
- 24. Interface/Abstract Class Coding Standard
- 25. ¿Qué significa 'Language Construct'?
- 26. C#/.NET equivalente para Java Collections. <T> emptyList()?
- 27. ¿Dónde están almacenados los servidores registrados?
- 28. ¿Dónde están los javadocs para Lotus 'Notes.jar?
- 29. ¿Dónde están los archivos include de opencv2?
- 30. ¿Dónde están mis gemas de rubí?
Si no tiene otra razón que la de "ser limitado", le sugiero que empiece a aprender C++ en su lugar. C++ tiene vectores, listas, casi cualquier cosa que desee, excepto hashtables, que se agregarán en C++ 0x y ya están disponibles en los compiladores modernos. – Thomas
Realmente siento la necesidad de familiarizarme más con C porque la mayor parte de la infraestructura que consumo como usuario de VHL Language se realiza allí y no en C++, siendo bash/PHP/Python los principales. – flaxeater