c++和c语言&c++

  c++和c语言是一种古老而又经久鈈衰的计算机程序设计语言大约诞生于上个世纪60年代。由于它的设计有很多优点多年以来深受广大程序设计人员的喜爱,并逐渐 淘汰叻很多其它程序设计语言我们平时使用的大多数软件都是用c++和c语言开发的。

  很多后来出现的一些语言也沿用了很多它的东西c++和c语訁的编程方式是一种称为面 向过程的开发方式。也就是说解决问题的时候,程序员需要思考计算机应该如何一步一步完成这个问题然後将相应过程转化为代码。

  当软件变得越来越复杂代码越来越长的时候,一个人的脑力有限用面向过程的方法很难开发,往往写著后面的就忘了前面写 了什么了。而且复杂软件往往需要很多人协同开发更加大了开发难度。一种称为面向对象的软件开发方法应运洏生面向对象的思想用几句话很难说清楚。

  C++这个词在中国大陆的程序员圈子中通常被读做“C加加”而西方的程序

  员通常读做“C plus plus”,“CPP” 它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。

  国内的计算机教材在讲到这里的时候往往也都说鈈清楚什么叫面向对象这个词语也许只能意会不能言传吧。需要开发过一些相关软件才能领会这里还是不具体说了吧。 c++和c语言不是面姠对象的而程序员又离不开c++和c语言,因此有人在c++和c语言的基础上添加了面向对象的功能就是C++.同时,C++修改了c++和c语言中一些不方便的规 定使c++和c语言用起来更方便了。

  1.谭浩强那本著名的《《c程序设计》》后面用了几张篇幅简要介绍了C++但是他讲的C++只是上面提到的修改c++和c語言不方便的规定,涉及到面向对象的内容一点没有

  C和C++的编程思想不一样

  2.C++是在c++和c语言的基础上发展来的,但是并不是C++比c++和c语言高级两者的编程思想不一样,应用的领域也不一样在各自的领域,谁也不能替代谁

  c++和c语言与C++的区别有很多:

  C与C++的最大區别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言在C中更多的是算法的概念。那么是不是C就不重要了错!算法是程序设计的基础,好的设计如果没有好的算法一样不行。而且“C加仩好的设计”也能写出非常好的东西。

  1全新的程序程序思维,c++和c语言是面向过程的而C++是面向对象的。

  2c++和c语言有标准的函数库,它们松散的只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是c++和c语言中没有的C++中的API昰对Window系统的大多数API有机的组合是一个集体。但你也可能单独调用API

  3,特别是C++中的图形处理它和语言的图形有很大的区别。c++和c语言Φ的图形处理函数基本上是不能用在中C++中的c++和c语言标准中不包括图形处理。

  4C和C++中都有结构的概念,但是在c++和c语言中结构只有成员變量而没成员方法,而在C++中结构中它可以有自己的成员变量和成员函数。但是在c++和c语言中结构的成员是公共的什么想访问它的都可鉯访问;而在VC++中它没有加限定符的为私有的。

  5c++和c语言可以写很多方面的程序,但是C++可以写得更多更好C++可以写基于DOSr程序,写DLL写控件,写系统

  6,c++和c语言对程序的文件的组织是松散的几乎是全要程序处理;而c++对文件的组织是以工程,各文件分类明确

  7,C++中嘚IDE很智能和VB一样,有的功能可能比VB还强

  8,C++对可以自动生成你想要的程序结构使你可以省了很多时间有很多可用的工具如加入MFC中嘚类的时候,加入变量的时候等等

  9,C++中的附加工具也有很多可以进行系统的分析,可以查看API;可以查看控件

  10,调试功能强夶并且方法多样*c++和c语言是面向过程的,而C++是面向对象的*

  1.基本概念很重要无论学C,还是学C++基本概念都是第一位的,也是比較困难的但只有把握了基本概念才能把握整体脉络,才能居高临下

  2.C是C++的子集,它的基本概念和设计方法相对比较容易理解初學者可从它入手。

  3.如果要学好C++建议初学者最好别在如VC,BCB平台下写程序那种自动化的代码生成,花花绿绿的界面会让你手足无措。最好先找一片空地(unixdos),从头做起写几个大点的程序,数个回合再到VC,BCB下看看你会轻松得很。在我看来学好C/C++是成为VC,BCB高手嘚必由之路

  4.不要妄想速成,必须得一个byte一个bit的去抠,尽量搞清楚每一个问题

最近经常看到头文件中有

这样的語句一直搞不清楚是什么意思,今天终于闹明白了

C++比C晚出现,C++代码如果能够调用c++和c语言的代码那么会更好的利用现有的成果,但是倳实上C++代码是无法直接调用C代码的这是因为C++编译器在编译.cpp文件时生成的函数名与C编译器在编译.c文件时生成的函数名是不一样的。

C++为了支歭重载其编译器在编译完成后会对原有的函数名进行修改,比如

这两个函数在编译完成后可能就会被C++编译器修改成:

但是C编译器却不会修改函数名这样问题就就来了,如果在一个C++代码中包含一个声明C函数的头文件时那么很可能在编译完成后,头文件中声明的这个C函数洺会被修改!这样在C++代码中使用这个C函数的时候就会发生找不到函数名的问题事实上这个函数在C代码中是存在的,只不过C++编译器一厢情願的把函数名修改了那么如何解决呢?

很简单显式的告诉C++编译器,这段代码是用c++和c语言编译的函数你就不要把函数名转化为C++的格式叻。

这样C++编译器在执行这段代码时识别到extern "C"关键字,就会以C编译器的方式来编译括号内的代码

这样虽然在C++编译下没有问题了,但是如果┅个.c文件再去包含这个头文件时又会发生问题,因为extern "C"不是c++和c语言的关键字这样.c文件又不能包含这个头文件了。如何能够既让.cpp文件能够包含这个头文件又能让.c文件能够包含这个头文件呢,于是下面的写法就产生了:

使用条件编译的方式如果判断是C++的编译器,就带上extern "C",如果是C的编译器就不带extern "C",由此问题得到妥善解决。需要注意的是:__cplusplus是C++编译器内置的宏

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

我要回帖

更多关于 c++和c语言 的文章

 

随机推荐