c#之困惑

那年桃花盛开时节 2011-06-29 12:25:52
c、++、c#它们之间关系如何?

C#的源文件编译成可执行文件,需不需要先把它们转换为C或C++源文件然后再进行编译?

用C#进行开发时,集成开发环境里提供的许多类、函数或方法都是用C#语言写成的么?

所有经过编译器编译成功可执行的exe文件,是不是都是二进制的机器码呀,是不是可以脱离开发平台,运行在各种操作系统之

上?


希望大家可以解解心中一直存在的疑惑?
...全文
127 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 flyforfei 的回复:]
引用 1 楼 caozhy 的回复:
(1)C#和C++完全没有关系。所以不存在什么把C#代码编译为C++再编译的说法。
(2)基本是,也有用汇编或者C++写的。
(3)不是,是 IL 代码(链接器会在前面附加一个标准的机器代码的头,因此在没有 .NET 的环境下也能运行,只是直接提示一个错误就退出。如同一个 Windows 程序在 DOS 下也能运行,并且输出一行字: this progr……
[/Quote]
虽然大家说奥迪和奥拓差别很大,但是我觉得奥迪和奥拓非常相似,首先,它们都使用四冲程汽油发动机。只不过奥迪的汽油机运用了机械增压、缸内直喷等技术。虽然奥拓的发动机排量小一点,而且只有2个气门,但是原理是一样的。其次,它们都是前置前驱动力系统。另外它们都使用了铁、铝等合金材料作为车身,无非就是奥迪是激光焊接,板子厚一些,模具开的精致点,最主要的,都有2个轱辘4个轮子。
奥迪虽然有很好的风阻设计,但是奥拓的小排量发动机更加经济。过几年油价上涨,奥迪淘汰了大家都用奥拓了。
flyforfei 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
(1)C#和C++完全没有关系。所以不存在什么把C#代码编译为C++再编译的说法。
(2)基本是,也有用汇编或者C++写的。
(3)不是,是 IL 代码(链接器会在前面附加一个标准的机器代码的头,因此在没有 .NET 的环境下也能运行,只是直接提示一个错误就退出。如同一个 Windows 程序在 DOS 下也能运行,并且输出一行字: this program can not run under……
[/Quote]

虽然大家都说 C#和C++完全没有关系;但是我却觉得二者非常相似;他们都是用的Api的,只不过C++尤其是Mfc只封装了一小部分,剩下的要直接使用,而.net把大部分Api封装起来,放到了CLR中;
所以运行时C++不需要装.net,但是实际上他也需要运行库的,只不过库比较小,而且现在的Windows大多数已经集成了C++库文件,过几年后,大家都淘汰了XP以及以下版本的windows,就都不用装庞大的.net库了
threenewbee 2011-06-29
  • 打赏
  • 举报
回复
(1)C#和C++完全没有关系。所以不存在什么把C#代码编译为C++再编译的说法。
(2)基本是,也有用汇编或者C++写的。
(3)不是,是 IL 代码(链接器会在前面附加一个标准的机器代码的头,因此在没有 .NET 的环境下也能运行,只是直接提示一个错误就退出。如同一个 Windows 程序在 DOS 下也能运行,并且输出一行字: this program can not run under dos mode)。
hztltgg 2011-06-29
  • 打赏
  • 举报
回复
初学者基本上是会搞迷糊 语言,库、平台,开发工具 之间的区别的, c++,mfc,vc,都一样。

其实语言是一种抽象的概念,就像英语汉语一样,只是表达一种思想的工具,纯粹的语言是连输入输出语句都没有的。

平台一般来说是一种硬件设备,手机、PC等等,不过有虚拟机的概念,也拓展的软件的范畴了,总体来说,平台是生产商定义的,比如手机能打电话,PC有键盘,显示器,这些东西怎么运作,都是硬件厂商说了算的。

库是联系平台和语言的工具,是编译器厂商开发的,将硬件设备通过简单的函数访问,比如键盘,c语言通过scanf函数访问,c#通过console.readline()读。

开发工具是个集成环境,将代码编辑,编译等功能放在一个软件里,方便使用而已。

至于程序能不能运行,那是看平台支不支持你的编译器编译以后的东西了,编译器要愿意的,c#、c、c++可以生成完全一样的代码。编译器厂商可以将任何语言编译为同样的代码,也可以让同样的源代码编译为不同的二进制程序以实现跨平台运行,关键还是编译器厂商愿不愿意做
xonln 2011-06-29
  • 打赏
  • 举报
回复
C++与C#没有关系...
C++是工业标准,是工业级编程语言,是高性能,功能超强的,OS,Database,嵌入式..大型应用软件,都有它的身影
C#是微软的宠儿,语法糖很多,只有自已的标准,性能较差,功能上只能写些普通的应用型的软件.适应Windows的发展..仅此罢了
ZhangNan20100811 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 caozhy 的回复:]
(1)C#和C++完全没有关系。所以不存在什么把C#代码编译为C++再编译的说法。
(2)基本是,也有用汇编或者C++写的。
(3)不是,是 IL 代码(链接器会在前面附加一个标准的机器代码的头,因此在没有 .NET 的环境下也能运行,只是直接提示一个错误就退出。如同一个 Windows 程序在 DOS 下也能运行,并且输出一行字: this program can not run under……
[/Quote]

mark.
q198708wyp 2011-06-29
  • 打赏
  • 举报
回复
C和C++有关系的 都是面向对象的 C语言学的号更牛逼些,病毒,驱动,嵌入式,都可以用C的 更底层
诺维斯基 2011-06-29
  • 打赏
  • 举报
回复
个人认为,编码都很相似,只是一些模式不一样,前提是你必须精通了编程的理念。
isjoe 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 caozhy 的回复:]
虽然大家说奥迪和奥拓差别很大,但是我觉得奥迪和奥拓非常相似,首先,它们都使用四冲程汽油发动机。只不过奥迪的汽油机运用了机械增压、缸内直喷等技术。虽然奥拓的发动机排量小一点,而且只有2个气门,但是原理是一样的。其次,它们都是前置前驱动力系统。另外它们都使用了铁、铝等合金材料作为车身,无非就是奥迪是激光焊接,板子厚一些,模具开的精致点,最主要的,都有2个轱辘4个轮子。
奥迪虽然有很好的风阻设计,但是奥拓的小排量发动机更加经济。过几年油价上涨,奥迪淘汰了大家都用奥拓了。[/Quote]

除了价格,他们真的很类似。。。。。。嘿嘿

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧