C 语言 进阶

前言

最近经常被询问 C 语言 相关的问题,突然便也觉得需要思考一下 C 语言的进阶了。
我用 C 语言写过的最大的一个项目,也只是那个贪吃蛇,后来就断断续续地用 Python、Java、Matlab 去了。以至于我到现在都完全不知道如何编写分层次的、多文件的 C 项目;看 JVM/CPython 的源代码时看到一堆的宏,也只会不知所措。

我想我应该找时间提高一下。因为主要用途还是看源码、编写模块给 python-cffi 或其他语言调用、开发 Linux 小工具之类的,因此我应该以熟悉语言核心和知名的开源库为主。

基础

  1. 语法:C Primer Plus
  2. 调试:gdb、汇编
  3. 编译:make、cmake
  4. 依赖:依赖?还是可执行文件?(动态链接与静态链接)

开源库

日志

待续

测试

  1. Criterion:21世纪的 C语言 跨平台测试框架

字符串处理

  1. ICU:一个 unicode 字符串处理库.
  2. PCRE:一个正则处理库

数据结构与算法

C 标准库既没有 C++ 的 STL,也没 Java 的 Collections。每次都要自己造轮子也太辛苦了点。。所以有的话当然要用别人的轮子了。

  1. Collections-C:提供了常用数据结构的实现,API 超简洁,注释很详细。源码抽空要仔细读一遍。

数据保存

  1. SQLite:这个在 Python 小项目里也常用,以文件为载体的嵌入式数据库。
  2. cJSON:json 编解码

图形库

初学编程时,总免不了想搞个图形界面。

  1. cairo:2D 图形库
  2. LCUI:一个使用 xml+css 写 UI 的 C UI库,适合写简单的跨平台应用。
  3. Learning OpenGL:这俩你都不想用?那直接 OpenGL 搞起吧。

更多

awesome-c

猜你喜欢

转载自www.cnblogs.com/kirito-c/p/9219283.html
今日推荐