隨著 C++ 標準化進程,標頭檔命名規範發生重大變更。理解新舊標頭檔的差異與關係,對於撰寫可移植、符合現代標準的程式碼至關重要。
.h 副檔名。例如 <iostream.h> → <iostream>,<complex.h> → <complex>。.h 並加上 c 前綴。例如 <string.h> → <cstring>,<stdio.h> → <cstdio>。| 類別 | 範例 | 支援狀態 | 命名空間 | 備註 |
|---|---|---|---|---|
| 舊式 C++ 標頭檔 | <iostream.h> | 持續支援(但官方不建議使用) | 不在 std 中 | 非標準,僅為相容性保留 |
| 新式 C++ 標頭檔 | <iostream> | 標準規範 | 在 std 中 | 功能與舊版基本相同,細節可能經修改 |
| 標準 C 標頭檔 | <stdio.h> | 持續支援 | 不在 std 中 | 為保持 C 語言相容性 |
| 新式 C++ 封裝 C 庫 | <cstdio> | 標準規範 | 在 std 中 | 內容同 <stdio.h>,但置於 std |
新專案請全面採用新式標頭檔(<iostream>、<cstdio> 等)並搭配 using namespace std; 或前綴 std:: 使用。 僅在維護舊代碼或需嚴格 C 相容時才使用 .h 版本。注意:舊新標頭檔不可混用,否則可能導致符號重複定義或命名空間衝突。
#include <xxx.h> (C++庫) 改為 #include <xxx>#include <yyy.h> (C庫) 改為 #include <cyyy>cout、string、vector)是否加上 std:: 或包含 using namespace std;掌握這套規則,能讓你的 C++ 代碼更符合現代標準,提升可移植性與維護性。