什么鬼!好乱好乱!

以下内容,仅供参考......
如有不周,望海涵!

1> 什么是VC++运行库? 什么是 VC++?

"VC++运行库" 提供系统底层API,进行封装打包后,供 PC程序 调用

"VC++"(抑或称为VC) 是一种编程软件,就相当于一个作业本,学习C++语言后,就需要把它写在作业本上,也就是写在 VC编程软件上,来实现具体功能。

2> 什么是.NET框架?

  1. 什么是.NET框架?

    .NET框架是一种 多语言组件 开发和执行环境,一款软件开发平台,它由以下三个主要部分组成 : 公共语言 运行时库 (可理解为运行环境 ,对应英文是:runtime) 统一的编程类 (即 : dll) 活动服务器页面(即:“ASP+”)

  2. framwork就是类库,不包括开发工具

  3. ASP.NET是一个 PC应用 开发工具, framwork 包含 开发ASP.NET应用程序所需的控件

3> C,C++,C#三者区别 ?

继承关系为 C -> C++ -> C#

C 语言 编译的 程序不用修改即可在C++的编译器上运行,C++完全向C兼容 . C++也称为带类的C,在C的基础上增加了许多面向对象的概念. 二者互有长处。

C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既 可用于系统软件(包括操作系统)的开发,也适合于应用软件的开发。此外,C语言 运行效率高,可移植性强 ,被广泛地移植到了各类计算机上,形成多种版本 的C语言。

C#是微软自己搞的,继承了C和C++的诸多特性, 但和两者 差异巨大 ,可被视为一种全新的语言。

侧重于 网络(network) 和 数据库( database ) 编程。

C++ 是在C的基础上改进后的一种编程语言,主要是增添了许多新的功能,

难度也比C大,和C一样侧重于计算机底层操作,也就是系统软件的开发。

C与C++的区别

C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。

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

对语言本身而言,C是C++的子集,那么是什么样的一个子集?从上文可以看出, C实现了C++中过程化控制及其它相关功能,而在C++中的C(我称它为“C+”),相对于原来的C还有所加强,引入了重载、内联函数、异常处理等等玩艺儿,C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等等。 再提高一点,在C++中,数据封装、类型这些东东已不是什么新鲜事了,需要考虑的是诸如:对象粒度的选择、对象接口的设计和继承、组合与继承的使用等等问题。 所以相对于C,C++包含了更丰富的“设计”的概念,但C是C++的一个自洽子集,也具有强大的功能,同样值得学习。

C和C++不是一门应用级的语言,其程序员的要求也不是应用程序员的要求

对于很多语言来说,比如Java,PHP,Python等,在开发之初,都有明确的应用方向,同时,为了适应跨平台需求,都做了一定性能上的牺牲,这类语言,一般比较擅长应对企业级数据库应用,即办公应用系统,以及网站开发等。

应该说,这已经是很大的市场了,足以让一个程序员吃一辈子的饭,因此,学会了这类语言以及应用开发,一般已经可以再80%~90%的开发市场找到饭碗了。

不过,C和C++不一样,C和C++从设计出来,就没有明确的应用方向,或者说,唯一明确的应用方向,就是做操作系统。我们知道,操作系统是适应面最广的应用软件,所以,C和C++就显得很保守,为了通用,它宁愿不提供什么功能过去强大的库,一切靠程序员自己来。

换而言之,做C和C++的程序员,或多或少都有一点操作系统,系统底层相关的知识,这部分知识,一般难学,费解,比起学习应用开发,使用某些框架模板来做某一类型应用来说,C和C++程序员需要更加深入的思考加学习,无形中,造成这类程序员没事喜欢瞎琢磨的特性,我就没事老是喜欢想操作系统内核一些功能,我来实现该怎么做。

这种事情想多了,不用说大家也知道,对自己的水平无形中,有一点点促进,因此,C和C++程序员往往看问题会深入一点,善于思考。

C和C++是高性能应用的唯一选择,这造成程序员必须学习优化

我们知道,虽然很多语言都可以写游戏,不过,作为大型游戏系统,比如暗黑破坏神吧,还有很多网游,出于高性能图形动画的需求,必须使用C和C++来实现,才能保证效率。很多大型网站的后台数据库,为了响应高吞吐量,高并发量的客户请求,也需要使用C和C++进行优化。

这就造成了,C和C++程序员一玩就是大的,必须对优化非常熟悉才行。我们知道,优化,有两个要求,一是对各类算法必须很熟悉,可以进行算法比较,另外,也是需求分析的专家,可以根据需求特性,做量身定做的优化。

这就要求C和C++程序员,经常陷入算法比对之类的任务,而且,也不能仅仅做一个程序员,还必须时刻思考客户需求,对需求做不断的再分析,才能找出优化之路。

我们知道,任何事情,做多了,就成熟练工了,自然也就来得快,C和C++程序员就是这个样子。可能还有很多其他理由,不过,我匆忙间,也就想出这几条。不过,大家可以看到,日久天长,C和C++程序员,不管是否自愿,但工作和学习中,确实比别语言的程序员在多想,多看,多学,自然而然,就显得很牛叉了。

但大家注意到没有,其实我上面分析的几点,与C和C++其实没有太多的关系,任何一门语言的程序员,只要坚持上面几点,不断修炼自己,其实都可以达到牛叉的地步。

所谓“功夫在诗外”,又所谓“穷人孩子早当家”,C和C++之所以显得牛人多,并不是这两门语言有多好,其实恰恰相反,是这两门语言没有给程序员提供太多帮助,而其应用环境又太多太广太深,逼的程序员在自我不断的学习,几年,十几年下来,自然显得比小日子过的还算不错的其他语言程序员,要深入一点。

但是,我们还是要看到,每一门语言,都有其存在的价值,起码程序语言排行榜前十的语言,都是伟大的语言,都可以产生大师,我觉得大家完全没有必要人云亦云,都一窝蜂跑来做C和C++,在很多应用市场上,Java、PHP等脚本语言,都以开发周期短,开发时间快,成为优选语言,C和C++完全没有办法和这些语言比较。

计算机软件开发,发展到现在,其实已经是很细分的市场,有专门的应用软件市场,也有系统软件市场,C/C++和Java等,各自应对的是不同的市场,因此,二者其实没有可比性的。

建议已经选择Java、.net等其他语言方向的同学,不要跟风,在自己的领域深入进去,你们也能成为牛人的。

4>Windows-OS 是什么语言编写的?

我们现在用的都是高级语言,最终编译为汇编或者二进制机器语言才可以 被机器识别 运行从这个角度理解windows是一个编译好了的可以被机器直接运行的程序 ,而这个程序当然可以用现在的高级语言编写

根据 微软之前在美国公布的内容,WINDOWS本身属于微内核系统,WINDOWS98总共大概不到10万行代码(具体是2万还是5万记不清了),而WINDOWS2000则已经有20余万行代码,其中80%是用C++编写,其余部分有C和汇编,底层接口就是用汇编编写的。

微软选择了C++而不像LINUX一样选择C,其根本原因就是WINDOWS操作系统本身是微内核系统,所以扩展性及以后的维护要求非常重要,所以C++的类的概念就能在这里很好的利用,但是毕竟C++的效率不如标准C及汇编,所以在一些明显以效率为重的地方用的还是标准C及汇编。

编写完毕后,WINDOWS上的其他用户程序(包括 驱动、计算器、游戏等等所有你现在拿鼠标能够操作的)另行开发,例如:扫雷游戏就是用VB写的。

5>现在的Windows程序大多都是用什么语言开发的?

大型游戏一般来说是C++,Office是C++;

我的世界、Mathematica是Java;

某些软件可能是Delphi,WPS就是Delphi;

至于Windows鼠标键盘中心、Visual Studio(界面部分)等一类的界面看起来比较生动的是使用的.NET,语言就不好说了,C#、VB、F#都有可能。

其实一个程序可以由很多语言写成,并不是一个萝卜一个坑,一条路走到黑。

现在的 windows 程序,或者说当下的程序员的主流,主要采用的是:

(1)C++;(2)C#;或者说 .net 家族语言(其中也包含了 C++)。

这两种语言为主流。因为 windows 系统上开发工具已被 VS 独大了。

尤其是 C++ ,可作为首选。

其他的肯定也有,但是就比较少就是了,比如采用 VB,Delphi,PB ,汇编 等等开发的。他们算是 上世纪 90 年代期间 多种开发工具和语言 百家争鸣时期的历史遗产。

有官方网站,能直接下载的那种给 大众用户 的软件大部分 C++ C# ;行业软件、专业软件是 C++ C# Java 等为主 。

6> C/C++、JAVA、C# 之间的 联系 和 区别?

虽然它们不是一种语言,不过它们却也有所联系。广泛地说,C可以看作其他三种语言的源语言,因为其他三种语言几乎都是从C而来的,无论从数据类型还是控制语句看,其他三种语言都有从C得来的迹象。

(1) 其中C++则一般看作是对C语言的扩展。

因为C语言没有面向对象的语法结构,而当时业界又迫切需要面向对象的编程特性,所以贝尔实验室的开发者就为C添加了面向对象的结构。

现在C++已经不仅仅是C的扩展了,它已经完全可以被看作一种新的编程语言。虽然C的特性以及库函数仍然被C++支持,不过C++拥有自己的独立的类库体系,功能相当强大。

(2) Java语言是一种完全的面向对象语言,虽然它的底层(运行时库 Runtime)是用C语言开发的,可是并不依赖于C。

因为Java的运行是在运行时库的支持下进行的,所以运行效率比起可以更接近底层的C/C++来说更低

不过Java的类库采用很好的设计理念设计,非常好用,也非常实用,已经成为业界的一种标准开发语言。

它的跨平台的特性尤其让很多开 发者欢迎,你只需要开发一次就能在所有安装了 “Java运行时库”(即:JVM , JAVA虚拟机) 的系统上运行。Java发展了十几年,可应用领域非常之广泛,Web开发有 JSP,J2EE,桌面领域现在有JavaFX。

(3) C#是微软开发的一种编程语言,语法类似Java,几乎就是Java的翻版。

运行原理和Java也类似,也是通过运行时库的支持运行。不过支持的平台还很有限。

但是Java可以被所有平台支持,而C#目前只被Windows和Linux支持,Windows下的支持当然是由微软自己开发的,而Linux下的支持则有MONO支持。实际上,MONO也是把C#应用转化为Java应用而已。

所以本质上,C#仍然只是被微软自己的操作系统支持。应用平台受到限制,是它最大的缺点。

(4) Java是c++的简化

1).

C++中子类对父类的继承有三种不同的形式,默认的是私有继承,也就是说父类的所有内容,除了私有的之外,都变成子类的私有成员。

保护继承是说,子类的公开的和保护的成员,在子类中变成了保护的,

公有继承是,父类的共有成员,在子类中还是公有的,而保护的,在子类中保持保护。

这是c++中的情景。继承的一个好处就是代码的复用,是在c++中,因为继承默认的是私有继承,那么我们就不能在子类中使用父类的代码,这就限制了面向对象的特性。在Java中对此作了改进。Java中不在对继承进行控制,但是使用c++中的公共继承效果,这样我们就可以省掉在继承时对关键字public的添加,方便了编程。也方便了对代码的重用。

2).

C++使用纯虚函数的概念来进行抽象类声明。而在Java中,也有相应的语法,但是这里使用virtual关键值,因为是抽象的类,所以,在Java中,使用的关键字abstract(抽象)。只要在类的生命有,只有方法头而没有方法的具体实现的类都是抽象类。

这样,如果我们想生命一个抽象类,那么我们只要不实现这个类的实现就可以了,而不用专门在声明它是抽象的。但是在c++中,因为允许类的声明和类的实现分离(类的生命放在一个文件里,而类的实现放在另外一个文件里,或者即使在一个文件里,但是类的成员函数的实现,也不是在类的声明体里),所以,在c++中必须明确的说明这是个纯虚的函数,而不能像Java中那样仅仅不实现它来表示它是个纯虚的。

3).

还有一点就是,在c++中我们访问对象的成员的时候使用->比较多,而在Java中,我们使用点(.)来表示。这是因为在c++中我们有指针的概念,而在Java中,去掉了这个概念。因为要实现类层面的多态,我们要使用父类的指针,所以,在c++中,往往使用->,而在Java中,使用一个“.”就可以完成同样的事情。一个需要两个按键,而另一个只需要一个就可以。这对于程序员这样一群抱有使用最少的代码解决问题的观念的人来说,这是个不小的改进。

(5) Java:无可争辩地具有C++所有的精华

在比较Java和C#的时候,你不可能不注意到它们诸多的相似之处,这在某种程度上要归结于它们共同的来源:C和C++。但是,当Gosling和他的同事们坐下来创造Java的时候,他们不仅吸取了C++的能力,而且更重要的是,他们减掉了一些无用特性,后者让C++更容易出错误而且更难学习。

C#的设计者加入了很多C++的特性,而Java也加入了这些特性,但是C#却没有去掉C++的最糟糕的一些特性。其结果就是 C# 这门语言,它仍然为所有人提供了所有的特性,但其结局是内部冲突不断,而且过于复杂。

(6) C#在安全上的削弱

C#有一个用于将代码区域标示为不安全的简单机制。在这些不安全的区域里,Java以及后来的C#安排到位了一些安全措施,用以防止程序员直接修改内存位置,以及使用点运算,但是这些措施是值得怀疑的。

在使用具有垃圾清理功能的高级语言时,如果下到内存地址这一层,就会把对象/内存之间有意作出分离弄混。错误就会容易出现,调试成了恶梦,缓冲区溢出再次抬头,C和C++里著名的安全漏洞再次现身。

(7)一些论坛说法:

C#怎么是抄袭JAVA了? C#抄袭Java是有目共睹,微软自己都承认,只不过改成中性词语:继承和吸取.

你可能感兴趣的:(什么鬼!好乱好乱!)