作者meltice (三亿两千万大散户)
看板C_and_CPP
标题Re: [问题] 为什麽作业系统都用C写? 而不用C++呢?
时间Sat Mar 7 19:30:32 2009
可能因为C比较简单比较具有可读性可预测性吧
可以比较明确知道程式会怎麽跑或是overhead会发生在哪边
OS kernel/driver也常会需要用到memory barrier, spinlock等机制
来更加确保程式会照着预期的步骤执行
而且会写OS的人基本上必定是精通C语言的人
他们会使用各种匪夷所思的语法来完成如艺术般的程式码
而C++可能太过於复杂太过於庞大
很多事都是compiler帮你完成以至於无法一眼看出全貌
虽然C++功能强大但是似乎要能够精准驾驭C++的人来的比C更少
虽然C可以写的很艺术但至少懂C的人专心看的话还是能理解
但如果写的很艺术的C++我想能理解的人肯定会少很多
P.S.
很多号称会C++的人其实根本啥都不会
我就是其中之一
我几乎没使用过继承, friend, operator overload, template ...
我只会用用简单的STL
从没使用过Boost
我从来不会写出类似这样的C++
也许对C++强者而言这只是小菜一叠而已
list<int>::iterator new_end =
remove_if(L.begin(), L.end(),
compose2(logical_and<bool>(),
bind2nd(greater<int>(), 100),
bind2nd(less<int>(), 1000)));
L.erase(new_end, L.end());
但我想对一个底层的OS而言这样的程式码会让人不知道他到底做了些什麽事
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 115.83.188.241