[問題] cout vs printf
上次上課的時候提到 C++ 的 I/O 系統
想到一個問題 所以想來問一下
順便澄清一下自己的觀念
---
根據個人的經驗
printf 的速度好像比 cout 還快
請問這是真的嗎?
如果是真的 原因又是什麼?
我自己的推論 可能的原因有以下三點
1) 那時候不習慣 cout 的格式化輸出所以寫起來比較麻煩
2) cout 裡面根本就是包 printf 所以直接多一層 function call
3) 不斷用 << 串聯的過程中 每次都多一個 function call
相較之下 printf 只有一次 function call
但是我記得 (1) 的情況並不嚴重 至少沒有大量的 if-else
所以 (2) 或 (3) 是主要原因嗎?
如果是 那麼是哪項比較嚴重 或者都差不多?
---
另外 printf 裡引數數量不固定
其內部對於引數的處理是如何呢?
是對每個引數都做了一次對應到該型別的 function call 嗎?
還是利用其他機制實現?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.192
推
12/06 23:37, , 1F
12/06 23:37, 1F
推
12/06 23:56, , 2F
12/06 23:56, 2F
推
12/07 02:18, , 3F
12/07 02:18, 3F
→
12/07 17:17, , 4F
12/07 17:17, 4F
推
12/07 17:38, , 5F
12/07 17:38, 5F
→
12/07 17:39, , 6F
12/07 17:39, 6F
推
12/07 18:15, , 7F
12/07 18:15, 7F