4 ms·
This is a great list of books - at least, I found the same ones were the most excellent. Also I really learnt a lot from 21st Century C (The author here said th
by yesenadam 7y ago
This is a great list of books - at least, I found the same ones were the most excellent. Also I really learnt a lot from 21st Century C (The author here said they wanted to stick to C89, which is fair enough.)
>To read great C code will help tremendously.
But then he just gives examples of games I don't know and am not really interested in. Anyone know some non-game C that is, I suppose, well-known and wonderfully-written?
Also, am learning about writing APIs, any good books or talks about that people could recommend, or examples of particularly good ones in C? (I'm particularly interested in maths/graphics-type stuff.) Thanks!
- jraph 7y agoI find the source code of the Netsurf browser really beautiful: - https://netsurf-browser.org/ https://netsurf-browser.org/ - https://source.netsurf-browser.org/netsurf.git/tree/ https://source.netsurf-browser.org/netsurf.git/tree/ Including the sub projects, for instance: - https://source.netsurf-browser.org/libcss.git/tree/ https://source.netsurf-browser.org/libcss.git/tree/ - https://source.netsurf-browser.org/libdom.git/tree/ https://source.netsurf-browser.org/libdom.git/tree/ It feels immediately obvious and understandable, which is quite impressive for a browser. Everything is well documented, well separated, the code is clean and seems simple, functions are small, etc. I am really impressed. I'd want to work on such code. I have never worked on it though, and I am not connected in any way to this project.
- needs 7y agoVery well written code indeed. Thanks for the links. They could make error management less bug prone by using goto, but it's definitely high quality C code nonetheless.
- rhoyerboat 7y agorecently I started working on a module for nginx and have developed a full-blown crush on the module loader and its relationship with core functionality. haven't seen anything else quite like it, in C, that is. major newb talkin' also plan9, its nice to read some kernel code that hasn't been tortured by practical requirements for decades.
- fabiensanglard 7y agoI recommend git source code which was pretty neat last time i checked.
- eindiran 7y agoThe sqlite codebase is well-known for being a large, well-written C codebase: https://github.com/sqlite/sqlite https://github.com/sqlite/sqlite The tests in particular are very impressive. Some other notable C codebases: Redis, LuaJIT, FreeBSD, Memcached --> https://github.com/antirez/redis https://github.com/antirez/redis https://github.com/LuaDist/luajit https://github.com/LuaDist/luajit https://github.com/freebsd/freebsd https://github.com/freebsd/freebsd https://github.com/memcached/memcached https://github.com/memcached/memcached
- jacquesm 7y agoVarnish and the Linux kernel should be in that list as well I think.
- eindiran 7y agoNice! Here are the links: Varnish --> https://github.com/varnishcache/varnish-cache https://github.com/varnishcache/varnish-cache Linux Kernel --> https://github.com/torvalds/linux https://github.com/torvalds/linux
- fanf2 7y agoPostgreSQL’s source code is also really good. https://git.postgresql.org/gitweb/?p=postgresql.git;a=tree https://git.postgresql.org/gitweb/?p=postgresql.git;a=tree
- atq2119 7y agoThe core Linux kernel is well-known and mostly well-written C.
- ndesaulniers 7y agoI'd say "advanced" C, not necessarily "well-written" C. There's certainly a lot of C in it, and I'd bet it's the largest open source C codebase.
- cesarb 7y agoThey go beyond C, it's actually C + GCC extensions. The only reason clang can compile it (in some configurations) is that they painstakingly implemented each of the GCC extensions the kernel uses (and when they were almost done, the kernel started requiring a few more).