首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么深入学c

2012-10-13 
如何深入学c我已经学谭浩强的c程序设计了,在杭电ACM上也做70多道水题了,我现在想进一步学c,而且我希望自己

如何深入学c
我已经学谭浩强的c程序设计了,在杭电ACM上也做70多道水题了,我现在想进一步学c,而且我希望自己朝操作系统方面发展,希望各位老手给点建议:
1:我该看什么书
2:我该看什么视频
3:我该注意哪方面的训练
4:通过什么途径加强训练

[解决办法]
本版同僚写的,不错,楼主可以看看
http://topic.csdn.net/u/20100111/02/88f22037-0790-45a4-80b1-131ddc755e6d.html
[解决办法]
http://topic.csdn.net/u/20100513/11/ffda12e0-3c3d-4538-8503-a837fdbac5ed.html
去三楼的回帖地方下载那四本书...那四本可以帮你深入学习C
[解决办法]
LZ应该听说过,C的核心在于指针,所以,想学好C语言,或者说为今后C系列(如C++)做准备,就要好好学好指针的使用,避免出现内存访问违例是个关键问题。
推荐:
《C和指针》,《C专家编程》。

另外,不是很推荐谭浩强的书……
[解决办法]
C语言学习推荐:
《C语言程序设计:现代方法:第2版》
《C陷阱与缺陷》

想向操作系统发展,那就看linux内核源码,
买几本linux内核相关方面的书,书和源码对照看
[解决办法]
C语言本身是很简单的,要想深入的话,就只能去关注系统编程了,比如linux了
[解决办法]
很多人一提到Linux,就直接去看Linux内核代码。其实不然,如果直接Linux内核代码的话,知识面需要很多,不是几年能搞懂,就网络通信模信模块你得把TCP/IP协议等与网络有关的知识搞,同时你还得去看相应的芯片手册。这是需要硬件基础的。块设备模块,你需要知道什么是块设备,什么是DMA操作。字符设备模块,你需要知道什么是字符设备。每一个模块都得去看相关的协议。
比如USB通信,UART通信,你需要看的是USB,UART协议。USB考虑到通用性,USB1.0,USB2.0。UART现在用得最多的是RS-232,RS485,这些协议你得去看,同时不同的处理器USB,UART接口也许不同,你得去看看处理器相关的知识。
不错有人也许会说,我只看内核调度,对,但是内核调度的一个最重要的一点是时间中断,这你还是得去看时间中断,Linux中最常用的时间单位是Hz,不同处理器Hz数值不同。
再比如,内存管理。是基于虑拟内存管理机制实现的,如果对虚拟内存不懂,那么你怎么看,虚拟内存与实际内存的对应关系,替换算法等等。真正的最底层的驱动程序。


总的来说吧。看Linux内核看得最多的应该是搞嵌入式驱动开发的,当然,也有Linux内核爱好者,但是,请选择自己最感兴趣的模块去研究吧,因为也许Linux内核开发者与维护者都不能把内核通吃,何况我们这些小儿。开发者与维护者都是分模块的。

热点排行