[求助]最近在想学 C 语言,大家有没有好的意见,或者学习资料之类的?

2019-11-21 11:45:19 +08:00
 nnnToTnnn

各位 V 友,是这样的,因为 C 语言编译后部署后字节很小,并且对 Linux 或者 Window,android 等等系统十分和善,所以我想系统的学习一下 C 语言。但是似乎找不到一些很好的学习资料。在此问问大家有好的学习资料吗?

想学一些比较底层的,例如 lwip 或者 tun/tap。还有网络协议

4128 次点击
所在节点    程序员
28 条回复
qakito
2019-11-21 17:25:53 +08:00
TCP/IP 详解 + unix 网络编程
bwangel
2019-11-21 18:01:16 +08:00
C 语言体积小有时候是因为动态加载库吧?

我觉得动态加载是 C 语言中的一个大坑,尤其在 Linux 上安装软件的时候,某个软件依赖了一个动态库,还需装个包来安装这个库,然后装完了发下版本不同,还得要找旧版本。。。这个真是非常痛苦的过程

我觉得 Go 做的就很好,把所有文件都打包到一起,不整什么动态加载,部署运行直接扔一个二进制文件就完事。
bwangel
2019-11-21 18:16:31 +08:00
https://github.com/rswier/c4 用 C 实现的一个简单编译器
https://github.com/hx1997/SimpleHttpServer.git 用 C 实现的一个简单 HTTP 服务器。
https://github.com/udp/json-parser 用 C 实现的一个 json 解析器。

别听楼上那些人瞎扯淡,上来就看什么 Redis,Nginx,哪些玩意的代码几万行,十几万行,没个几年的功夫啃不下来。可以先看一些小项目,代码行数在两千行以内的,先熟悉用 C 怎么写一个项目。

看这些小项目的时候,可以在手边放几本书《 C Primer Plus 》,《 Linux/Unix 系统编程手册》,遇到不懂的,就去找对应的章节看一遍。

看完这些,依然感兴趣的话,可以再来挑一个大项目来看。看大项目之前,一定要先用熟悉(例如 Nginx 要会配置,Redis 提供的数据结构基本都用过一遍),然后再挑一个大项目的一个模块来看。
edimetia3d
2019-11-21 19:58:02 +08:00
今年抽空把 <C 语言程序设计:现代方法(第 2 版)> 看了. 确实是本好书, 只有二三处瑕疵吧, 比如某些实践中不应该用的 featrue 也详细的介绍了一下. 语言层面非常推荐看这本书.

至于其他所谓的底层编程, 和 C 的关系并不是很大, 这些问题一般都和硬件及 OS 有紧密的关系, CSAPP 这样的书可以作为入门. 其他的则可以进一步按需求补充
tomychen
2019-11-21 20:02:17 +08:00
K&R
crclz
2019-11-22 00:07:04 +08:00
还有部署洁癖呢?还有部署洁癖呢?还有部署洁癖呢?还有部署洁癖呢?
wind315
2019-11-22 11:35:29 +08:00
赞同楼主的观点,确实 c 出来的东西很小很快,不过对要求比较高,很多程序员无法达到,所以就出现了现在这种不太重视运行效率而变为追求开发速度的状态。大家如果觉得不用太追求体积效率的话,可以搜索一个行业软件 sawstudio,这个软件的作者秉承了一直用汇编写代码,再动不动就上 g 的时代,大家对 10 多 m 的软件能如 ps 一样优秀怎么看?
Twain
2019-11-22 12:11:50 +08:00
ffmpeg nginx 用 c 写的 学好它们就行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/621685

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX