C语言跟C#有什么不一样的
2个回答
展开全部
最大的区别,C语言编译后是变成机器语言直接运行在CPU上的,C#编译出来的ML是运行在一个叫CLR的类似虚拟机的东西上的。并不直接使用CPU。
C语言是一门非常基础的语言,提供了高效的目标程序和比较少的特性,比如面向对象的类,抽象,多态和继承都无法实现,而C#是一门纯面向对象语言,不仅强制要求类定义,并且全面支持面向对象的方法(抽象,多态和继承)。
C语言有指针类型(可以说是这门语言的精髓),对于计算机有深入了解的程序员可以使用指针进行各种“精妙”的操作,当然也伴随着很大的风险,比如指针异常导致的内存溢出。C#在标准代码中不允许使用指针,事实上绝大部分指针的操作都被C#良好的封装了,避免了内存溢出的风险。
另外C#由于遵守CLT定义并运行在CLR上,有良好的可移植性,只要目标机器安装了对应版本的.NET Frameword,C#程序就可以在那台机器上运行(虽然.NET目前主要在Windows上才有),而C编译的完成的程序会根据操作系统和CPU型号有一定的不兼容性,不过几乎所有的CPU+所有的操作系统上都有C的编译器,所以应用范围比C#还要广。
当然,普遍认为一个熟练的程序员使用C编译的程序效率要高于使用C#编译出来的。
C语言是一门非常基础的语言,提供了高效的目标程序和比较少的特性,比如面向对象的类,抽象,多态和继承都无法实现,而C#是一门纯面向对象语言,不仅强制要求类定义,并且全面支持面向对象的方法(抽象,多态和继承)。
C语言有指针类型(可以说是这门语言的精髓),对于计算机有深入了解的程序员可以使用指针进行各种“精妙”的操作,当然也伴随着很大的风险,比如指针异常导致的内存溢出。C#在标准代码中不允许使用指针,事实上绝大部分指针的操作都被C#良好的封装了,避免了内存溢出的风险。
另外C#由于遵守CLT定义并运行在CLR上,有良好的可移植性,只要目标机器安装了对应版本的.NET Frameword,C#程序就可以在那台机器上运行(虽然.NET目前主要在Windows上才有),而C编译的完成的程序会根据操作系统和CPU型号有一定的不兼容性,不过几乎所有的CPU+所有的操作系统上都有C的编译器,所以应用范围比C#还要广。
当然,普遍认为一个熟练的程序员使用C编译的程序效率要高于使用C#编译出来的。
展开全部
其实我们十一局开发环境来区分的。纯种的C语言编辑用得最多的是Trubo C、VC++也可以,很多人搞不清C、C++、GCC、C#区别。其实C语言还真就不是C++、C#那么回事,C++可以用VC6.0,但是后来局限VC6.0的类库太少,C++分成了2个方向。
一个方向是QT,可以在windows、Lunix都能开发,其实是两个版本的QT,用的是Clang,配置信号槽的方式。
另一个是Visaul Studio C++,完全继承自VC6.0,还加入了托管代码,其实跟VB.NET、C#同化了的,因为在一个开发环境,都是基于Framework。C#是VS主打语言,代码书写精 炼,已经很成熟了。
GCC那是lunix上使用的语言。
从整体发展来看从C到C++、C#,逐步演变成一种过程化编程,以前的C我们要写基层代码,基于操作系统层面基础实现,现在C++、C#可不一定了,在VS里面Nuget搜索一下,大量的开源库,直接安装,属性给一下就能使用。
一个方向是QT,可以在windows、Lunix都能开发,其实是两个版本的QT,用的是Clang,配置信号槽的方式。
另一个是Visaul Studio C++,完全继承自VC6.0,还加入了托管代码,其实跟VB.NET、C#同化了的,因为在一个开发环境,都是基于Framework。C#是VS主打语言,代码书写精 炼,已经很成熟了。
GCC那是lunix上使用的语言。
从整体发展来看从C到C++、C#,逐步演变成一种过程化编程,以前的C我们要写基层代码,基于操作系统层面基础实现,现在C++、C#可不一定了,在VS里面Nuget搜索一下,大量的开源库,直接安装,属性给一下就能使用。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询