关于 C 语言的相关问题

264 天前
Canglin  Canglin
我是一个初学者,目前已经看完了 C primer plus ,但是感觉什么都做不了,想问问朋友们想学习 C 的网络、多线程、数据库、GUI 相关内容应该看点什么书
3328 次点击
所在节点   C  C
33 条回复
henix
henix
264 天前
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 等等,那就去看具体的库的文档。
BeautifulSoap
BeautifulSoap
264 天前
@enchilada2020 并不一定,哪怕是科班线路,也不一定要从 C 入门。我觉得 C 更应该被视为有一定编程基础和对计算机结构基础有了解之后的进阶知识。一上来就 C 只会打击学习热情
比如麻省理工 CS 就是最早用 Python
dayeye2006199
dayeye2006199
264 天前
https://build-your-own.org/

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

顺便自荐一下 C 轮子开源项目: https://github.com/Water-Melon/Melon
araraloren
araraloren
264 天前
@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.
smallboy19991231
smallboy19991231
263 天前
@Canglin 深入那本書最後三章就是系統和網路編程和併發編程入門足夠了
sjkdsfkkfd
sjkdsfkkfd
263 天前
《 UNIX 环境高级编程》 +1
《 Object-Oriented Programming With ANSI-C 》,这本可以看看,毕竟大项目即使是 c 语言也还是会有很多面向对象的设计的

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

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

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

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

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

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

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

© 2021 V2EX