Pustaka header tunggal saya untuk C/C ++.
| perpustakaan | versi terakhir | kategori | Loc | lisensi | keterangan |
|---|---|---|---|---|---|
| json.h | 1.00 | parser | 848 | Zlib | Parser JSON non-alokasi |
| SCHART.H | 1.00 | multithreading | 699 | Zlib | Penjadwal tugas multithreaded |
| Web.H | 1.00 | jaringan | 1455 | BSD | Server web ringan |
| SDEFL.H | 1.00 | kompresi | 525 | domain publik | Mengempiskan kompresor |
| Sinfl.H | 1.00 | dekompresi | 320 | domain publik | mengempiskan dekompresor |
Total Perpustakaan: 5
Total baris kode C: 4487
Windows tidak memiliki direktori standar tempat perpustakaan tinggal. Itu membuat perpustakaan menyebarkan di Windows jauh lebih menyakitkan daripada pengembang open source pada derivasi Unix yang umumnya sadari. (Ini juga membuat ketergantungan perpustakaan jauh lebih buruk di Windows.)
Ada juga masalah umum di Windows di mana perpustakaan dibangun terhadap versi berbeda dari perpustakaan runtime, yang menyebabkan konflik tautan dan kebingungan. Mengirim LIBS sebagai header berarti Anda biasanya hanya mengkompilasi mereka langsung ke proyek Anda tanpa membuat perpustakaan, sehingga menghindari masalah itu.
Membuat mereka satu file membuatnya sangat mudah untuk hanya memasukkannya ke dalam proyek yang membutuhkannya. (Tentu saja Anda masih bisa memasukkannya ke pohon perpustakaan bersama yang tepat jika Anda mau.)
Mengapa tidak dua file, satu header dan satu implementasi? Perbedaan antara 10 file dan 9 file bukan masalah besar, tetapi perbedaan antara 2 file dan 1 file adalah masalah besar. Anda tidak perlu zip atau tar file ke atas, Anda tidak perlu ingat untuk melampirkan dua file, dll.
Setiap file memiliki dokumentasi, deskripsi dasar USSAGE dan contoh di bagian atas file. Selain itu setiap fungsi API, variabel struct dan anggota juga didokumentasikan. Akhirnya setiap pustaka memiliki file uji yang sesuai di dalam direktori tes untuk contoh kerja tambahan.
Secara pribadi saya terutama menggunakan C bukan C ++ dan karena saya ingin mendukung C dan C ++ dan C ++ tidak dapat digunakan dari CI sehingga fokus pada C.
Saya menggunakan C89 bukannya C99/C11 untuk portabilitasnya antara kompiler yang berbeda dan aksesik untuk bahasa lain.