Pergunta
Só porque eu sou curioso - há algum C analógico para a funcionalidade do STL em C ++? Eu vi menção de um GTK + biblioteca chamado glib que algumas pessoas consideram enche o Bill, mas existem outras bibliotecas que iria fornecer funcionalidade STL em C?
Solução
Sim, glib
é uma boa escolha: ele inclui uma série de utilitários para manipular recipientes, como listas ligadas, arrays, tabelas hash, etc. E há também uma estrutura orientada a objeto chamado GObject
que você pode usar para fazer objetos com sinais e slots em C (embora com nomes de chamadas de função em vez detalhado como gobject_set_property
, desde C não tem qualquer sintaxe para objetos). E há também o código para principais circuitos para que você possa escrever programas orientados a eventos.
Mais informações a partir wikipedia: http://en.wikipedia.org/wiki/Glib
Glib era originalmente parte do GTK, mas o código não-GUI foi completamente fatorado de modo que você pode usá-lo em programas de linha de comando: http://library.gnome.org/devel/glib/stable/
Outras dicas
Bem, desde que a própria natureza de STL é baseado em modelos que C não tem, seria difícil até mesmo chegar perto do STL em C. O melhor que você pode esperar é algumas classes de coleção que manipulam * ponteiros void para desconhecido objeto.