Minhas bibliotecas de cabeçalho único para C/C ++.
| biblioteca | versão mais recente | categoria | Loc | licença | descrição |
|---|---|---|---|---|---|
| JSON.H | 1,00 | analisador | 848 | zlib | Analisador JSON não alocado |
| SDIGE.H | 1,00 | multithreading | 699 | zlib | Agendador de tarefas multithread |
| web.h | 1,00 | rede | 1455 | BSD | SERVER LIGHTWEIXE |
| sdefl.h | 1,00 | compressão | 525 | domínio público | Deflate o compressor |
| sinfl.h | 1,00 | descompressão | 320 | domínio público | Deflate o descompressor |
Bibliotecas totais: 5
Total de linhas de código C: 4487
O Windows não possui diretórios padrão onde as bibliotecas vivem. Isso torna a implantação de bibliotecas no Windows muito mais dolorosa do que os desenvolvedores de código aberto do Unix-Derivates geralmente percebem. (Também torna as dependências da biblioteca muito piores no Windows.)
Há também um problema comum no Windows, onde uma biblioteca foi construída contra uma versão diferente da biblioteca de tempo de execução, que causa conflitos e confusão de links. Enviar os Libs como cabeçalhos significa que você normalmente os compõe diretamente em seu projeto sem fazer bibliotecas, evitando esse problema.
Torná -los um único arquivo facilita muito a entrada de um projeto que precisa deles. (Claro que você ainda pode colocá -los em uma árvore de biblioteca compartilhada adequada, se quiser.)
Por que não dois arquivos, um cabeçalho e outro uma implementação? A diferença entre 10 arquivos e 9 arquivos não é grande coisa, mas a diferença entre 2 arquivos e 1 arquivo é um grande negócio. Você não precisa fechar ou alcarcar os arquivos, não precisa se lembrar de anexar dois arquivos, etc.
Cada arquivo possui documentação, descrição básica do USSage e exemplos na parte superior do arquivo. Além disso, cada função da API, as variáveis de estrutura e membro também estão documentadas. Finalmente, cada biblioteca possui um arquivo de teste correspondente dentro do diretório de teste para obter exemplos de trabalho adicionais.
Pessoalmente, uso principalmente C em vez de C ++ e, como quero apoiar C e C ++ e C ++, não é utilizável do IC, portanto, foco em C.
Eu uso C89 em vez de C99/C11 por sua portabilidade entre diferentes compiladores e acesso para outros idiomas.