您的位置:首页 > 编程语言 > C语言/C++

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

2013-02-21 15:02 190 查看
C++是对C语言的提升,相对C语言C++到底多了些什么?其实,任何C++能完成的功能,C语言都能完成(其它语言未必能完成,比如偏底层涉及到寄存器的,甚至C和C++都无能为力,需要汇编),从功能上来说,二者是等价的。但是一些显而易见的现象是,完成一个功能用C++需要更少的代码(用汇编则是更多的代码)。就以析构函数为例,只要定义一次,在任何地方用到,只需要声明对象,不需要调用析构函数。C语言则需要每一次都调用一下析构功能的函数。其实C++生成的二进制代码体积更大一些,C++能够以更少的源代码得到更多的二进制代码,根本原因是编译器帮助C++生成了代码。C++的编译器要比C语言的复杂很多。再以C++的虚函数为例,在生成对象时,编译器默认的生成一段代码,这段代码把虚表地址复制到对象的首地址。换成C语言,需要把虚函数定义成一个个自己的成员变量,又需要自己一个个赋值到这些变量上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: