Re: [問題] 為什麼作業系統都用C寫? 而不用C++呢?
可能因為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
討論串 (同標題文章)
完整討論串 (本文為第 13 之 37 篇):