博客
关于我
C 语言 进阶
阅读量:459 次
发布时间:2019-03-06

本文共 1574 字,大约阅读时间需要 5 分钟。

最近经常被询问 C 语言 相关的问题,突然便也觉得需要思考一下 C 语言的进阶了。我用 C 语言写过的最大的一个项目,也只是那个贪吃蛇,后来就断断续续地用 Python、Java、Matlab 去了。以至于看 JVM/CPython 的源代码时看到一堆的宏,只会不知所措。所以也就整理个清单,打算找时间补补了。

前言

我用 C 语言写过的最大的一个项目,也只是那个贪吃蛇,后来就断断续续地用 Python、Java、Matlab 去了。以至于看 JVM/CPython 的源代码时看到一堆的宏,只会不知所措。所以也就整理个清单,打算找时间补补了。


基础

学习 C 语言需要从基础入手。以下是一些推荐的学习资源和工具:

  • 语法学习:《C Primer Plus》是一本非常经典的书籍,适合初学者系统学习 C 语言的语法。
  • 调试工具:使用 gdb 是掌握 C 语言调试的基础工具,熟练掌握汇编语言也是调试的重要技能。
  • 编译工具cmake 是一个强大的跨平台编译工具,能够帮助开发者快速构建和验证项目。
  • 关于程序的编译和链接,需要明确程序是执行可执行文件还是共享库。这个问题在实际开发中经常会出现,需要根据具体需求来选择。


    开源库推荐

    在 C 语言的生态系统中,有许多优秀的开源库可以帮助开发者提高效率。以下是一些值得关注的库:

  • 性能优化:如 libavffmpeg,适合需要处理多媒体文件的项目。
  • 网络编程:如 socketlibcurl,是处理网络通信的基础库。
  • 多线程:如 pthreads,是处理多线程任务的标准库。

  • 日志处理

    日志处理是程序开发中非常重要的环节。以下是一些常用的日志库和框架:

  • 简单日志库:如果项目需求不高,可以直接使用内置的日志功能,如 fprintfprintf
  • 高级日志框架:如 log4clogutils,提供了更便捷的日志配置和管理功能。

  • 测试

    在 21世纪的 C语言 开发中,跨平台测试是非常重要的一环。以下是一些推荐的测试框架:

  • 单元测试cmake 提供了很好的支持,可以结合 ctest 进行单元测试。
  • 自动化测试:如 automakeconfigure,能够帮助开发者自动化测试流程。

  • 字符串处理

    字符串处理是程序开发中非常常见的任务。以下是一些推荐的字符串处理库和工具:

  • Unicode 字符串处理ICU 库提供了对 Unicode 字符串的高效处理支持。
  • 正则表达式regex 库可以帮助开发者轻松处理复杂的文本匹配任务。

  • 数据结构与算法

    C 标准库虽然没有像 C++ 的 STL 或 Java 的 Collections 那样的强大支持,但也有一些优秀的开源库可以选择:

  • 数据结构实现:如 dsounddarray,提供了常用数据结构的实现,API 简洁且注释详细,值得深入研究。
  • 算法库:如 gperftabgmp,提供了高效的算法实现,适合需要性能优化的项目。

  • 数据保存

    数据保存是程序开发中不可或缺的一部分。以下是一些推荐的数据持久化工具和格式:

  • 嵌入式数据库:如 sqlite,适合在文件中嵌入式存储数据的需求。
  • 数据编解码json 编解码是现代数据交换的标准方式,适合需要灵活数据处理的项目。

  • 图形库推荐

    图形库是构建用户界面不可或缺的一部分。以下是一些推荐的图形库和工具:

  • 2D 图形库:如 cairosvg,适合需要高质量图形输出的项目。
  • 跨平台 UI 库:如 wxWidgetsgtk,可以使用 XML 和 CSS 来定义用户界面,适合需要跨平台支持的项目。
  • OpenGL:如果需要高性能图形渲染,直接使用 OpenGL 是更好的选择。

  • 更多资源

    如需了解更多资源,可以关注 C 语言社区和开源项目,持续补充和完善这个清单。

    转载地址:http://spdyz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现alternate disjoint set不相交集算法(附完整源码)
    查看>>
    Objective-C实现alternative list arrange备选列表排列算法(附完整源码)
    查看>>
    Objective-C实现An Armstrong number阿姆斯特朗数算法(附完整源码)
    查看>>
    Objective-C实现anagrams字谜算法(附完整源码)
    查看>>
    Objective-C实现ApproximationMonteCarlo蒙特卡洛方法计算pi值算法 (附完整源码)
    查看>>
    Objective-C实现area under curve曲线下面积算法(附完整源码)
    查看>>
    Objective-C实现arithmetic算术算法(附完整源码)
    查看>>
    Objective-C实现armstrong numbers阿姆斯壮数算法(附完整源码)
    查看>>
    Objective-C实现articulation-points(关键点)(割点)算法(附完整源码)
    查看>>
    Objective-C实现atoi函数功能(附完整源码)
    查看>>
    Objective-C实现average absolute deviation平均绝对偏差算法(附完整源码)
    查看>>
    Objective-C实现average mean平均数算法(附完整源码)
    查看>>
    Objective-C实现average median平均中位数算法(附完整源码)
    查看>>
    Objective-C实现average mode平均模式算法(附完整源码)
    查看>>
    Objective-C实现avl 树算法(附完整源码)
    查看>>
    Objective-C实现AvlTree树算法(附完整源码)
    查看>>
    Objective-C实现backtracking Jump Game回溯跳跃游戏算法(附完整源码)
    查看>>
    Objective-C实现BACKTRACKING 方法查找集合的幂集算法(附完整源码)
    查看>>
    Objective-C实现bailey borwein plouffe算法(附完整源码)
    查看>>
    Objective-C实现balanced parentheses平衡括号表达式算法(附完整源码)
    查看>>