当前位置:C++技术网 > 资讯 > 该选择C语言还是C++

该选择C语言还是C++

更新时间:2017-05-01 22:38:06浏览次数:1+次

在大一大二都学过C语言和C++,但是现在快大四了,基本都忘得差不多了,现在想对接就业,该选择C语言还是C++,之后的学习应该如何进行,谢谢了

C++技术网会员解答:

    你好,感谢您对C++技术网的信任与支持。

    如果说就业的话,并不是仅仅学习语言就行了的。不过,不同的语言适用于不同的开发场景,你说的选择C语言还是C++,也就是对开发方向的选择。那么我就来说说。

    C语言是面向过程的语言,C++包含了面向过程、面向对象、面向泛型等思想。也因此,两种语言适用的开发场景和方向也不一样。所以这个就和你具体要发展的方向有关了。我将两种语言可能涉及到的开发行业方向说一下,你对照参考下。

    C语言适用方向:

    C语言适用于单片机、嵌入式、病毒安全、驱动程序、系统开发、下位机等。特点就是,非常偏向于底层开发和研究,同时需要学习汇编语言进行更加深入的学习和应用。因为C语言只有面向过程的特性,所以在复杂项目开发的时候,不能利用面向对象的方式来做,所以对于大型软件开发来讲,就不适合了。当然,有很多人对C语言很精通,也就自己用C语言模拟面向对象思想。但是这样很费劲了,不推荐。很多设备都是单片机或者嵌入式设备,性能有限,所以需要C语言进行开发。而单片机和嵌入式设备是现在的物联网行业非常重要的设备,也就是各种各样的传感器。正因为性能有限,所以需要简练的C语言做开发,不会增加更多的负担。而如果是用C++开发,则需要一套支持C++语法的机制,这个就有更多的硬件要求,所以不合适。而下位机一般来说是会包装单片机或者就是单片机的一套硬件,通过串口和上位机进行通信,从而上位机可以控制下位机硬件。下位机就是硬件,上位机则是上层发送命令控制下位机硬件的软件。上位机可以使用高级语言C++语言来做,毕竟上层逻辑会更加的复杂,使用C++面向对象的特性可以很好的进行包装实现,开发效率更高。驱动程序则更接近系统底层,而系统底层也是基于C语言开发的,自然使用C语言更接地气,而且浑然天成。系统开发则就是系统的内核的开发,自然也是基于C语言和汇编语言来开发才是更好的选择,因为C++语言本身就需要更多的支持。所以系统内核一般都是C语言和汇编语言开发而成的。病毒安全则更多是运用系统底层的机制做安全,需要的更多是功能性而不是开发量,所以C++没有必要。而且程序经常会被反编译为C语言代码进行分析逆向,C语言是首选。

    C++适用的方向:

    C++的特性有面向过程、面向对象、面对泛型,所以即兼容C语言,也超于C语言。在底层接触的也不错,在上层开发也很有效率。而且面对泛型,也让开发可以更加通用。所以除了C语言那些地方使用C++不太合适的情况外,其他情况使用C++都是比较合适的。我们使用面向对象可以构建大型项目软件,开发效率很高。面向泛型则可以开发非常通用的程序工具库或者组件。C++兼有面向底层和上层的特性,让C++上下兼得。虽然像Python这样语言开发迅速,然而却没有很好的程序执行效率。而C语言虽然可以让程序效率更接近机器底层,可以让运行效率更加高,然而开发大型项目软件时开发效率太低。C++具备两方面的优势,上下兼得,所以也是C++虽然学习难度大,但是还是持久不衰的原因。在快速开发的时候,我们可以选择开发效率更高的脚本语言,如Python。然而如果需要执行效率非常高,开发效率也高,我们一般还是会选择C++。让Python去调用C++开发出来的库,或者直接让C++开发整个软件,都是可以的。所以,C++适用的范围非常广。我们很多的嵌入式设备使用的是Linux系统,所以我们可以直接用C++进行开发。

    C++适用于PC客户端开发、服务器开发、专业领域开发、各种工具库开发、跨平台库开发、游戏开发、网络通信等等。

    然而语言只是基础,学完了语言并不等于就能够工作了。但是没有语言基础,是万万不行的。不管是哪个语言,总是需要学习各种对应的开发库如STL和QT。我们需要学习系统程序开发,需要知道系统的机制和API。这些是基本的开发基础。每一个人的方向都不一样,这里无法准确说清楚。如果你没有确定的方向,你可以参考网站提供的通用学习路线,就是:C++学习路线:1)C C++ 2)数据结构 STL boost 3)操作系统 计算机网络 4)win32/linux使用和编程(shell+系统编程) 5)QT、SQL、socket (6)其他。而每一个人学习的具体的方向还是有很大的差异,我们对会员提供一个学习路线规划,如果需要请预约进行一对一指导。我们需要充分对你的情况进行了解,然后再做规划,这里就没法说清楚了。