Re: [問題] 為什麼作業系統都用C寫? 而不用C++呢?
※ 引述《yehsd (急)》之銘言:
: [再次感謝版友 adrianshum 提醒, 我應該說的詳細點]
: 和這句, 有沒有矛盾點?
: [我想說的是, ctor 是空的, 還是會有 default ctor, 這點如同 adrianshum
: 所言. 如果在 instantiation 時指定了自訂的 ctor, compiler 就不會去 generate
: default ctor. 所以 littleshan 所說的: constructor 是 compiler 幫你自動
: 呼叫的指的應該是 default ctor? 因為這個 ctor 才是 compiler 會自動呼叫的,
: 希望我沒誤解 littleshan 所說的 ^^]
我覺得你這個人不錯,
雖然不太懂 C++,但是會唸書,也會想,以後會很強。
我覺得你不錯,
所以我現在願意花時間打字講些很基本的東西給你看,
首先,一「空的」函數,在經過最佳化以後是不會被呼叫的,
不管他是你自己手寫的,還是編譯器自動生成的都一樣,
這是非常基本非常常見非常簡單的最佳化,
也就是說你所謂那一百萬次的函數呼叫成本其實不存在。
: : 在 C 裡面你可能宣告了變數卻忘了初始化
: : C++ 的 constructor 正好可以避免這種情況
: 這是 C++的優點, 但是也有可能是雙面刃.
你不能這樣說話的,
你得告訴我另外一面是什麼?
不然這個句型太強大了,什麼都能套下去,
我可以說「C 的不用初始化是一個雙面刃」,或說「C 的速度是一個雙面刃」,
但是我不跟你講原因,你會不會覺得我很笑?
C++ 出來的早,只是「建議你」初始化,
現在新出來的語言,幾乎都強迫你一定要初始化,
你看,C++ 很卑微的。
: : 的確有時候 C 比 C++ 快 (printf 比 cout 快是不爭的事實)
: : 但也有許多 C++ 比 C 快的情況 (例:STL 的 sort 狂勝 C 的 qsort)
: : 既然做法不一樣 那比這個也沒什麼意義可言
: 看到這邊, 我只能說我可能真的沒你那麼懂 C++, 小弟不才,
: 用 C++ 開發一個比 C 寫出來還快的OS, 這個重責大任就交給比較懂的人囉.
現在懂的不多沒關係,你可以再多念一點,
如果你 CPPPL 真的念得很透的話,應該不會講出上面那些話,
使戳使挫在書裡面對 C++ 的效能提到很多了。
最後是跟程式無關的……
自己書看不夠的時候,盡量少叫別人看書,感覺不太好,你知道我的意思。
一個人有料的時候,自己可能不會知道。
但是一個人沒料的時候,旁邊的人都看得很清楚。
--
To iterate is human, to recurse is divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.108.87
推
03/06 22:21, , 1F
03/06 22:21, 1F
→
03/06 22:22, , 2F
03/06 22:22, 2F
→
03/06 22:22, , 3F
03/06 22:22, 3F
→
03/06 22:23, , 4F
03/06 22:23, 4F
→
03/06 22:24, , 5F
03/06 22:24, 5F
→
03/06 22:28, , 6F
03/06 22:28, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 6 之 37 篇):