- Hacktical C 简介:这是一本实用的黑客指南类 C 编程语言书籍,纪念 Dennis Ritchie,假设读者有基本编程知识,聚焦于利用 C 语言的强大和灵活性的实用技术,仍在完善中,有问题可在仓库报告。
- 作者相关:作者认为程序员有学术型、黑客型和淘金型,自己是黑客型,1985 年圣诞节得到 Commodore 64 后开始写代码,至今写过多种语言,起初不太重视 C 语言,后因意识到软件中复杂性是大敌而重视起来,还学到很多技巧。
- 许可证:本书内容通过CC BY-NC-ND 4.0公开许可。
- 支持:作者以开放许可证发布书籍是为让更多人受益,也相信创作者应得到补偿,可通过 Stripe、Liberapay 赞助,或使用 BTC(bitcoin:18k7kMcvPSSSzQtJ6hY5xxCt5U5p45rbuh)或 ETH(0x776001F33F6Fc07ce9FF70187D5c034DCb429811),世界上没有免费的东西,贡献很重要。
- 为何选择 C 语言:认为 C 语言独特,是近似可移植的汇编语言,提供类似自由度,不刻意防止犯错,自由与责任并存;如今很多程序员推荐更严格语言,但很多人没能力用好 C 语言且未正确学习,数字革命基础用 C 语言,软件有 bug 是人类设计和构建复杂软件不成熟导致,而非编程语言问题,应选择适合工作的工具。
- 构建相关:makefile 需要
gcc
、ccache
和valgrind
,操作步骤为git clone https://github.com/codr7/hacktical-c.git
、cd hacktical-c
、mkdir build
、make
。 - 平台相关:推荐 Unix 系统(Linux 目前支持最好)和 Free/Open/NetBSD,这些平台支持
valgrind
使 C 编程更安全高效;Microsoft 长期忽视 C 语言,其编译器落后,Windows 可通过 WSL2 运行 Linux;macOS 逐渐偏离 Unix 根源,在该环境下编写 C 语言越来越令人沮丧。 - 可移植性相关:书中代码使用了一些未纳入 C 标准的 GNU 扩展,如清理属性、多行表达式和嵌套函数,除嵌套函数外,代码中使用的扩展在
clang
中也能正常工作,有一个hc_defer()
功能目前没有扩展无法实现,其他情况有替代解决方案但不太方便。 - 章节内容:内容按自然进展排列,后期章节基于已介绍概念,可自由跳转但需准备回溯填补空白,包含Macros、Fixed-Point Arithmetic等 15 个章节,整个书可按instructions导出为
ePub
格式。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。