开课吧:深入了解C++和C语言的血缘关系

C++起源于"带类的C",最初作为C语言的扩展,通过预处理程序转化为C语言代码进行编译。随着发展,C++逐渐成熟,支持面向过程、面向对象和泛型编程,拥有自己的编译方式,虽然常见的编译器如GCC、Clang同时支持C/C++,但C++已成为一门独立的语言。
摘要由CSDN通过智能技术生成

目前人们在提起C++的时候,会很自然的联想到C语言,为了能够深入了解C++开发相关信息,需要搞清楚C++和C语言的血缘关系。

现在看来,C++和C语言虽然是两门独立的语言,但是它们却有着扯也扯不清的关系。

早期并没有“C++”这个名字,而是叫做“带类的C”。“带类的C”是作为C语言的一个扩展和补充出现的,它增加了很多新的语法,目的是提高开发效率,如果你有 Java Web开发经验,那么你可以将它们的关系与 Servlet 和 JSP 的关系类比。

这个时期的C++非常粗糙,仅支持简单的面向对象编程,也没有自己的编译器,而是通过一个预处理程序(名字叫cfront),先将C++代码“翻译”为C语言代码,再通过C语言编译器合成最终的程序。

随着C++的流行,它的语法也越来越强大,已经能够很完善的支持面向过程编程、面向对象编程(OOP)和泛型编程,几乎成了一门独立的语言,拥有了自己的编译方式。我们很难说C++拥有独立的编译器,例如Windows下的微软编译器(cl·exe)、Linux下的 GCC 编译器、Mac下的Clang编译器(已经是Xcode默认编译器,雄心勃勃,立志超越GCC),它们都同时支持C语言和C++,统称为C/C++编译器。对于C语言代码,它们按照C语言的方式来编译;对于C++代码,就按照C++的方式编译。

从表面上看,C、C++代码使用同一个编译器来编译,所以上面我们说“后期的C++拥有了自己的编译方式”,而没有说“C++拥有了独立的编译器”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值