C 语言 进阶

Posted kirito-c

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言 进阶相关的知识,希望对你有一定的参考价值。

前言

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

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

基础

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

开源库

日志

  1. zlog:日志

测试

  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

以上是关于C 语言 进阶的主要内容,如果未能解决你的问题,请参考以下文章

C语言基础学习笔记+ C语言进阶学习笔记总结篇(坚持才有收获!)

C语言函数详解(入门到进阶)

由浅入深学C语言基础(进阶与必做430题)

C语言进阶学习笔记二指针的进阶(练习篇)

求翁恺老师的C语言程序设计he 以及进阶的百度云资源

C语言学习 从入门到进阶