C语言从来都没有过时,你大爷终究是你大爷

直到今天,有人在喊C语言过时的语言,还有什么值得学习的,现在看Python,PHP等语言现在都很容易用,谁还在学习老C语言,其实这是真的吗?作者下载了两种语言的源代码作为下载器。由于空间的限制,我们没有分析如何实现这些编程语言。

简单列举下目录结构:


php部分底层文件


python部分底层文件

现在编程语言进化速度以及种类变化非常大,现在C语言走在前台的机会越来越小,并不代表C语言就此埋没了,或者销声匿迹了,还在像老牛一样默默的耕种。

从世界编程语言的范围看,C语言的排名稳居前三,只不过最近几年由于国内互联网发展的比较迅猛,比较前沿的开发语言用的多一点,似乎是觉得C语言的市场相对少了,放眼全球C语言排名依然很可观,有图为证。


2017世界编程语言排名

有些人会觉得掌握了C语言不能总是去开发别的语言,现实中学好了C都能开发哪些项目?

如果大家对于学习C/C++有任何问题,学习方法,学习路线,如何学习有效率的问题,可以随时来咨询我,我做这行年头比较久,自认为还是比较有经验的,可以帮助大家提出建设性建议,下面是我的C/C++交流qun,有任何问题可以随时来咨询我。

关于怎么快速学C/C++,有什么方法,这个问题,想必大家都已经心中有数了,打算深入了解这个行业的朋友,可以加下小编的C/C++学习群:815393895 不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的C/C++资料和0基础入门教程,欢迎初学和进阶中的小伙伴。

每天晚上20:00我都会开直播给大家mianfei分享C/C++学习知识和路线方法,群里会不定期更新最新的教程和学习方法(进群送2018C/C++学习教程),大家都是学习C/C++的,或是转行,或是大学生,还有工作中想提升自己能力的C/C++党,如果你是正在学习C/C++的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实,非常适合新手学习,有不懂的问题可以随时问我,工作不忙的时候希望可以给大家解惑。

一. 嵌入式软件项目

C语言是比较靠底层的语言,和设备直接打交道比较多,linux操作系统的源码绝大部分是C语言搞定。芯片和底层驱动基本上也是C语言,大家在招聘简章上的驱动工程师最基本的要求就是掌握C语言。

常见的底层库比如网络接收,底层图形绘制库等对性能要求非常高底层软件库,基本上是C语言和汇编的结合体,C语言相对占比更高。


二. 参与开发高级语言底层实现,或者系统级开发

现在常见比较流行的语言底层代码基本上都有C语言的参与,很多常见的python,java,php底层的维护语言基本上以C语言为主,这方面对于编程经验的要求也比较高。有想了解这方面的知识的可以,订阅一个linux内核开发的邮箱,能自动收到linux内核里面提交的bug,解决bug的代码,以及提出一些建设性的意见,每天都能收到成百上千的邮件。能很好的了解开源社区是咋玩的,也能进一步了解C语言在开发系统方面,原来如此强悍。


三.通讯领域以及服务端的开发

在强调性能和底层数据安全性的领域,C语言还是第一选择。服务器端特别是网络并发处理以及数据安全都是第一位的。这个行业C语言施展的空间还是很大。很多大型的游戏引擎底层图形库的实现也有C语言的功劳。

从理论上来说C语言能做任何事情,但不同场景可能是别的语言相对来说更加合适,效率更高。比如做个web服务器,用C语言一点点的都能实现,交给java去做,搭建几个框架几个回合就完成了。不是能不能的问题,是谁最合适的问题。

很多系统级架构师,对C语言很是推崇,有句话:知其然知其所以然,说的就是这个道理,知道底层是如何实现才能更好 指导上层如何去应用。很多资深级别的程序员都建议从C语言开始学习编程,然后慢慢向上层迈进,一步一个脚印的完成。

四C语言可以开发游戏

当然C语言也可以开发一些小游戏,有趣的同时也掌握了相应的知识点。

5、C语言制作2048

使用 C 语言完成一个2048游戏。

6、C语言版flappy_bird

使用 C 语言来实现一个字符版 Flappy Bird

7、C语言版扫雷游戏

使用 C 语言完成一个简单的扫雷游戏。

8、C语言快速实现五子棋

使用C语言实现五子棋游戏。

三、 C语言可以开发的其他应用

如果你以为C语言只能开发上面介绍的小游戏以及一些耳熟能详的应用呢,那么就大错特错了,因为C语言还可以开发很多东西,如下:

9、C语言实现一个支持PHP的简易WEB服务器

用C语言实现一个简易的WEB服务器,并能支持动态解析PHP程序。主要涉及到的技术有:Linux Socket编程,HTTP协议(只实现GET请求),Fast-CGI协议。

10、C语言实现ping程序

项目用C语言实现ping命令。通过项目可以更深入地理解TCP/IP协议,掌握C语言进行网络编程的技巧方法。

11、C语言实现 Linux 网络嗅探器

项目通过原生套接字的方式,监听所有本地主机收发的数据链路层帧结构,然后解析数据包的类型,并记录到日志文件。实现一个轻量级的网络嗅探器。

12、C语言实现文件类型统计程序

通过实现一个文件类型统计程序,对Linux的文件系统有一个更加深入的了解,尤其在文件类型的判断,目录的操作上的理解会加深。

13、C 语言实现多线程排序

项目在 Linux 环境下使用 C 语言多线程模型实现了排序算法,通过该项目的学习,可以理解并实践 Linux 环境的编程基础及多线程模型。

14、C语言实现 FTP 服务器

本项目实现了支持 list,get

如果大家对于学习C/C++有任何问题,学习方法,学习路线,如何学习有效率的问题,可以随时来咨询我,我做这行年头比较久,自认为还是比较有经验的,可以帮助大家提出建设性建议,下面是我的C/C++交流qun,有任何问题可以随时来咨询我。

关于怎么快速学C/C++,有什么方法,这个问题,想必大家都已经心中有数了,打算深入了解这个行业的朋友,可以加下小编的C/C++学习群:815393895 不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2018最新的C/C++资料和0基础入门教程,欢迎初学和进阶中的小伙伴。

每天晚上20:00我都会开直播给大家mianfei分享C/C++学习知识和路线方法,群里会不定期更新最新的教程和学习方法(进群送2018C/C++学习教程),大家都是学习C/C++的,或是转行,或是大学生,还有工作中想提升自己能力的C/C++党,如果你是正在学习C/C++的小伙伴可以加入学习。最后祝所有程序员都能够走上人生巅峰,让代码将梦想照进现实,非常适合新手学习,有不懂的问题可以随时问我,工作不忙的时候希望可以给大家解惑。

有志于在编程行业走到最后的小伙伴,建议一定要学习下C语言,为自己打下一个良好的基础。加油吧,

猜你喜欢

转载自blog.csdn.net/qq_42785431/article/details/81204667