19 条回复  ·  318 次点击
yfang 小成 2024-6-2 22:55:23
除了嵌入式和操作系统底层和高性能场合外
最好不要用 C 语言写什么

最佳路径就是做项目
henix 小成 2024-6-2 23:44:21
C 语言本身内容较少,而且抽象层次很低,属于“系统编程语言”,也就导致,网络、IO 、GUI 这些功能在其他编程语言中可能已经抽象到标准库中了,但 C 语言标准库不包含这些,要用的话应该学习操作系统提供的 API 。不同的操作系统提供的 API 是不同的,需要分别去学,或者使用一些别人封装好的跨平台库。

Linux 推荐 Linux/UNIX 系统编程手册 https://book.douban.com/subject/25809330/
Windows 推荐 Windows 系统编程 https://book.douban.com/subject/5323432/
关于库的底层实现的 程序员的自我修养 https://book.douban.com/subject/3652388/

看了这些你能理解一些网络库的底层实现原理了,当然实际应用中可能更多会使用别人的开源库。比如 libuv 、mysql 的 C 接口、GTK 等等,那就去看具体的库的文档。
dayeye2006199 小成 2024-6-3 02:12:42
https://build-your-own.org/

编译器,关系数据库,KV 数据库,web 服务器。
一般搞点具体的可以维持学习兴趣
felixlong 小成 2024-6-3 09:53:04
@Canglin 学 C 最简单的就是用 C 去刷刷 leetcode 就行了。知道 C 指针/数组/函数基本上就会了。
monkeyNik 小成 2024-6-3 10:30:41
系统、网络相关的去看:《 UNIX 环境高级编程》和《 UNIX 网络编程》
算法:就算法导论吧
数据库:直接看对应数据库的 C API
GUI:不太清楚了,去参考一下其他贴吧

顺便自荐一下 C 轮子开源项目: https://github.com/Water-Melon/Melon
araraloren 小成 2024-6-3 10:40:52
@Canglin You should choose a language base on your business. I don't think you should learn C just because the third-party tools are written in C.
sjkdsfkkfd 小成 2024-6-3 12:39:42
《 UNIX 环境高级编程》 +1
《 Object-Oriented Programming With ANSI-C 》,这本可以看看,毕竟大项目即使是 c 语言也还是会有很多面向对象的设计的

然后你之后工作搞啥你就看看相关的开源项目
424778940 小成 2024-6-3 14:48:02
不同意楼上某些观点
嵌入式领域, 针对单片机来讲, 很多就算封装过的也是 c 库, cpp 的并不多
c 是很底层的语言, 跟文件/网络之类的东西可以做但现在都不会用 c 来写一般, 除非是特定环境需求
对于 c 语言我的建议是所有语法相关的东西看完就可以了, 针对*inx/win 的 api 没有什么折腾的必要
楼主做"实时计算"方向具体是什么平台和需求呢? 我所接触到的更多的是 rtos 之类的场景, 比如 freertos 或者 zephyr 之类的, 这类是 c 强需求的场景
如果只是希望提升一般分时系统下的程序性能, 用 c 实现不一定是最优解
ysc3839 小成 2024-6-3 16:19:11
我的建议是别只学 C ,应该学 C++,实际写项目也更推荐 C++
LuckyPocketWatch 小成 2024-6-3 21:08:02
C primer plus 这本书讲的是基本的语法,看完了确实啥都写不了,我知道两条深入的路径

一条是嵌入式,公司有小组专门做这个,但我不了解,只听他们整天说“烧板子,烧程序”,我每次听见都以为他们要放火。。

另一条 unix/linux 系统级别开发,相关可以从《 UNIX 环境高级编程》和《 UNIX 网络编程》卷一和卷二看起,这个是 unix/linux 的接口以及开发,不过这个书的难度不是一般的大。。。。比如《 UNIX 环境高级编程》最后的大示例就是将你开发一款数据库。。。请谨慎入行
12
返回顶部