C语言与C++的区别(6页).doc
《C语言与C++的区别(6页).doc》由会员分享,可在线阅读,更多相关《C语言与C++的区别(6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C语言与C+的区别-第 6 页C+几乎完全兼容了C,但增加的特性差不多比整个C语言还多。C是一种简单的语言。它真正提供的只有有宏、指针、结构、数组和函数;而C+还有私有和保护型成员、函数重载、缺省参数、构造和析构函数、自定义操作符、内联函数、引用、友元、模板、异常、名字空间,等等。用C+比用C具有更宽广的空间,因为设计时有更多的选择可以考虑。此外,C+从安全性上远比C好,因为类型检查更严格。C只是C+的一个子集,C+是C语言发展的一个优秀的旁支。C是面向过程的语言。C+ 是在C基础发展起来的面向对象的语言,他几乎集成了所有的C的东西。(当然也剔除了很多C的缺陷,这个就要在长期学习中慢慢体会了
2、)。C语言是结构化和模块化的面向过程的语言,C+语言是混合型面向对象的程序设计语言。C+语言是C语言的超集,也就是说学会了C+,你其实已经把C语言学会了。至于说有什么区别,应该说是编程思想的区别吧,C是基于过程的,强调的是程序的功能,以函数(功能)为中心。C+是面向对象的,强调程序的分层、分类,以抽象为基础,进行对象的定义与展示,即程序设计。具体说来话长。建议你学习C+的时候,学会用面向对象的方式思考和编程。现在在开发大项目的时候,都是应用面向对象的分析和设计的技术。 C和C+的区别有什么?其他的东西都不需要多说,就象类,继承,引用等,大家都知道。这里讲的是调用编译的区别.大家看WIN32 S
3、DK的头文件,总是可以看到 :ifdef _cplusplus extern C endif ifdef _cplusplus endif 这个就是直接能够体现实际编程时区别的地方。在WIN系列下,所有的WIN32 SDK提供的LIB都是以C的形式存在的。当然,C和C+同样都支持C,STDCALL,FASTCALL调用。为什么系统提供C编译器编译的LIB而不是C+编译的LIB呢?这里其实就是C和C+编译器不同的地方。所有的函数名称只有在汇编编译器下才最清楚。因为经汇编编译器编译的函数不经过任何修饰。C 的编译器编译出来的函数名称如果在汇编编译器看来一个C调用将在函数名前家下划线(_)。而一个S
4、TDCALL的函数将是的形式,如FUNC(void)经过编译器后成为。一个FASTCALL调用的函数被编译成FUNC0。顺便提一下,在WIN32的编译器里不再需要PASCALL调用,VC6已经取消了对PASCALL的支持. 光看C的编译还不够,看一下C+编译器是怎么干的。在缺省情况下,一个C+的函数经过C+编译器后编译出的函数名包括函数名,所属的类,参数类型,调用约定,返回类型。而且更要命的是这么多的信息,只有函数名和类名在编译后还依稀可见,其他就是一长串的ABCD字母,根本就是无法辨认其意义的。我们在VC手册里可以看到一个例子: void _stdcall b:c(float); - ?cb
5、QAGXMZ 一个函数被编译得连名字也不知道怎么样了.这么一来.如果SDK提供的是C+编译器提供了LIB.那么可以说就无法编译任何一个完整的WIN程序.更加不用说什么混合语言编程. 现在,VC编译器提供了个extern语句,当出现extern C语句,括号里的函数将以C方式经过编译器.从而使提供库程序方便那么点。C语言与C的区别有很多: 1,全新的程序程序思维,C语言是面向过程的,而C是面向对象的。 2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C+对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C+中的API是对Window系统的大多数API有机的组合
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 C+ 区别
限制150内