2008年12月23日 星期二

C++ 小技巧

1. cout << endl; 和 cout << “\n”; 的差別: endl會flush buffer,但是 "\n" 不會。這意味著:debug 時善用 endl 可以減少 debug messages 延遲印出所造成之困擾,而 release 時改用 "\n" 可以增進效能。

2. 隱式型別轉換 ( Implicit [Type] Casting ): unsigned 和 signed types一起運算時,注意兩者都會被 implicitly casted 成 unsigned int。 這在 signed 變數 為負值時會出現和你所想不一樣的結果。此問題在使用 sizeof 運算子傳回值 和有號數比較時 尤其難以發現(sizeof 運算子之傳回值型別為 size_t,其係由 unsigned int 所 typedef 而成)。

沒有留言:

張貼留言