linux c语言学习

唯一only 发布于 2012/12/29 09:34
阅读 1K+
收藏 3

    大家好。允许我问一个老生常谈的问题,我想学C语言,也不要为什么问我想学。或许是我无聊了吧。

    我对于C的学习一直是处于一个很虚的地步。因为我一直是做java的开发的,我某一天也突发奇想学起了C。想学一下C在linux下的编程,别问我为什么不学C++。

    现在目前C的一些系统调用以及各种概念我也能够基本了解,在这些学习中,我了解了更多系统的内容,包括进程、消息之类的。这些很多在java中是无法实现得,更给我一种决心要去学习。

    我知道在现在,很多人都说C落后了,以至于有个师弟吧,今年大一,学了一个学期就说学会了。我想问真的学会了吗。其实我很羡慕他们,可以继续学习,我可能因为工作之类的时间,学习的时间可能没有他们多了。

    言归正传吧。各位大哥大姐,请原谅我。我也不喜欢叫别人大神或者大牛,因为在计算机的世界里面只有所谓的懂和不懂。能不能给我指条学习这些的明路呢。因为我可能不会从事这方面的工作,毕竟很多人都说过,如果不从事C的工作,学了也是浪费,可是我还是希望能够学。能够研究得比那些从事这方面工作的人更深一些。现在能不能告诉我,接下来我该怎么走,才能在C这条路走下去。我感觉很迷茫。很多人跟我说要做项目,可是我也很盲目,因为不像java,我在网上可以一搜一大把java的项目,从各个阶段我都有。

    好吧。请原谅我的语文是体育老师教的,请各位指一条明路吧。说说你们的C的历程。

加载中
0
乌龟壳
乌龟壳

能不用c就尽量不用c,管理内存神马的最麻烦了。自动内存管理会更容易编写没有内存问题的代码,比如java啊c#啊还有一些脚本语言。

但c是这些的基础,所以如果有些系统相关性比较大的要求,或者性能的要求,除非有现成的,否则还是要着手用c来实现的。

c语言本身是相当简单的,更确切地说是相当纯粹的,所以不容易产生二义性,在系统编程中非常理想。但系统是个庞大的框架,所以在系统上进行c编程,要学习很多系统的约定才可以调用系统的服务(这叫系统调用)。了解C,了解系统调用后,就可以进行业务编码了。

当然里面有很多要积累的地方,很多规范要遵守,这个得慢慢来了。

乌龟壳
乌龟壳
呵呵,没说不给学哦。只是说明下适用范围,和学习的大方向而已啦。
唯一only
唯一only
首先很感谢你的评论,或许是出于提高自身的水平吧。我希望能够学习linux下的C来理解之前很多无法理解的事情。所以我还是会继续坚持的。
0
若谷
若谷
学者做一些小东西吧,比如日志封装,内存管理啥的,网络通信,原谅我是一个菜鸟,也说不出啥大道理。
若谷
若谷
osc应该就有很多
若谷
若谷
回复 @林松泽 : 不知道,建议把C的基础学好后再搞,这些模块都是项目开发中经常用到的
唯一only
唯一only
哪个网站比较多这种类似于demo的小项目吗?
0
cut
cut

c是个好东西,哥用了那么多年一点也不觉得有什么落后的,底层开发很给力。不过你要是想好好搞linux的话还真要下工夫看看c,不然很多东西深究不下去。

cut
cut
回复 @林松泽 : 搞C的人都一般喜欢自底向上的学习方式,了解底层怎么实现的,然后去了解上层需要怎么的应用,所以建议你从怎么操纵CPU开始,GPIO,外设驱动,内存映射,中断向量实现,底层原语接口设计,怎么实现线程,实现调度,内存管理,TCP/IP协议栈实现等,那样基本上你也大概知道C能搞什么。搞前端开发c不太适合,不过搞算法要速度的时候能发挥用场,c做中间件的之类的
唯一only
唯一only
呵呵。你说的下功夫看C是指哪方面?求指教下。谢谢。
0
狗操_我今年大三它妈
狗操_我今年大三它妈
易学难用。我打开一些开源的项目,里面全是宏,指针函数,好像是另外一种语言
0
LimSteven
LimSteven
c51 -> avr-gcc -> arm 我个人觉得,有硬件支撑,比起纯软件那种只能在显示器里显示的产出物要有趣得多。
返回顶部
顶部