C++用纯面向过程的方式开发操作系统底层可行否

LINUS批评C++的也不过是没有垃圾回收,Boost...STL等高层的东西,而我记得C++是可以嵌套汇编开发底层的。为什么大家都认为只有C可以做到?哪些地方是C++做... LINUS 批评C++ 的也不过是没有垃圾回收,Boost...STL等高层的东西,
而我记得C++是可以嵌套汇编开发底层的。
为什么大家都认为只有C可以做到?哪些地方是C++做不到的,一定要C才可以的??
这里说的是C++完全丢弃面向对象部分的编程思想,纯粹面向机器的思想来编程
由于c++编译器对c++的函数的命名扩展使得汇编程序无法与之接口
(这句话证据在哪里?)
展开
 我来答
xth21
2013-10-30 · TA获得超过471个赞
知道小有建树答主
回答量:603
采纳率:55%
帮助的人:442万
展开全部
  C++用纯面向过程的方式开发操作系统底层是可行的。很多人说不可行,相信只有两种人会说这样的话,一种是像Linus这样的大牛,他们开发操作系统的时候还没有C++出现,等到C++出现的时候,他们过多地关注一些面向对象高层特性,比如虚函数、多态、模版库等,却忽视了C++是C的超集,你仍然可以使用C的思想去使用C++环境;第二种人是只会盲目跟风,没有深层次的理论研究和实际测试,人云亦云的二流程序员,他们对C语言大牛说的每一句话都不加怀疑地相信。
  C++可以使用嵌套汇编。
  可行归可行,但是用C++开发OS底层还是会碰到一些问题的,但都不难解决。c++编译器对c++的函数的命名扩展使得汇编程序无法与之接口,这种说法不是很专业,我估计是因为C++编译器在处理函数名时会进行一些修饰,比如int _ValidateRead(void const *,unsigned int)这种C函数用C++编译器处理后就变成了?_ValidateRead@@YAHPBXI@Z,会与C编译器编译的老的可执行文件冲突,可通过加编译器参数禁止这种修饰,也可以使用C++编译器将老的可执行文件重新编译来解决问题。
  目前之所以不流行用C++开发底层,主要是因为Linux内核是纯C的,为了降低风险,很多公司不愿意冒险,但绝对不代表不行,也没有哪个组织公开过不可行的证据,仅此而已。
南瓜猪的的的
2013-10-30 · TA获得超过1297个赞
知道小有建树答主
回答量:1598
采纳率:0%
帮助的人:387万
展开全部
绝对可行
因为机器码 汇编 c c++的内存管理策略是一致的(不像java c#是内存托管)
只要编译器支持就可以了
不过目前芯片厂的编译器基本都不支持c++,能支持c就不错了

至于神马命名接口 用extern "C"{}就搞定了 根本不是啥问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二弼萌8
2013-10-30 · TA获得超过666个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:325万
展开全部
c++可以做操作系统的,lz可以自行搜索一下eCos这个东西,虽然现在已经没人维护了。
我个人对这个的看法,我认为在很多处理中,c++只会将问题复杂化,所以就个人而言,不喜欢这种做法。给维护带来了一些复杂性。
至于ls说的wps和word的区别,我想可能是因为ls还不清楚word比wps功能多不少吧?word不仅仅是能编辑文字的。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式