为什么在windows下不能直接编译运行c或c++程序,而它系统本身不就是用c语言写的吗?

如题所述

其实你是把商业问题和技术问题混为一谈了。
首先,Windows不是纯C语言编写的,应该说是类C语言编写的。
其次,不是不能运行C语言的程序,也不是没有编译器。而是运行自定义C或者C++程序是一个功能,这个功能的实现所需要的开发费用是非常高昂的,而且售出的比较少。
所以实际上C和C++的编译器比Windows要贵很多。如果把编译器成本分摊到Windows里,又会增加Windows的价格。
这些实际上是商业策略,需要很久才能理解。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-23
就相当于你编写了个程序,然后编译运行后会生成一个exe文件,而windows就是这么类似的东西,可以简单的看成机器语言(表示电脑可以直接运行)。那么你写的程序还只是高级语言,不会被机器理解,要经过编译才可以运行。你可以试试,把编译运行后的exe文件放到没安装c++或者之类平台的电脑上也是可以运行的。

希望有用追问

那windows系统既然能能运行,它是否是就应该有底层的编译器使得它能够运行程序?

追答

必须的,那是和源代码绑定的,但是汇编的部分除外

追问

“那是和源代码绑定的”什么意思?既然它有编译器,那么,我们写的c程序也应该能够用它来编译运行吧

追答

理论上是可以的,但是实际上不行,要是公开的话那么他的秘密就不是秘密了。其实他做好系统后就成产品了,就像你做的软件一样,脱离编译器可以运行。

第2个回答  2018-10-13
写好的C程序是需要编译,链接之后才能运行的。
编译是需要编译器的,而操作系统本身没有集成编译器。
安装的操作系统是已编译好的。执行已经编译好的程序是不需要编译器的。
第3个回答  2012-08-23
windows只是用一个系统,是程序运行的平台。c或c++是高级语言,是不能被执行的,需要通过编译软件进行编译才能执行。
第4个回答  2012-08-23
我觉得这是由C/C++的性质决定的,他们是高级语言,与机器语言不是一一对应的,必须要编译成机器语言才能运行。
相似回答