C++和C语言的一点区别

8 篇文章 0 订阅
C++是对C语言的提升,相对C语言C++到底多了些什么?其实,任何C++能完成的功能,C语言都能完成(其它语言未必能完成,比如偏底层涉及到寄存器的,甚至C和C++都无能为力,需要汇编),从功能上来说,二者是等价的。但是一些显而易见的现象是,完成一个功能用C++需要更少的代码(用汇编则是更多的代码)。就以析构函数为例,只要定义一次,在任何地方用到,只需要声明对象,不需要调用析构函数。C语言则需要每一次都调用一下析构功能的函数。其实C++生成的二进制代码体积更大一些,C++能够以更少的源代码得到更多的二进制代码,根本原因是编译器帮助C++生成了代码。C++的编译器要比C语言的复杂很多。再以C++的虚函数为例,在生成对象时,编译器默认的生成一段代码,这段代码把虚表地址复制到对象的首地址。换成C语言,需要把虚函数定义成一个个自己的成员变量,又需要自己一个个赋值到这些变量上。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值