在新的C++標准中,生成新頭文件的方法僅僅是將現有C++頭文件名中的 .h 去掉。例如,<iostream.h> 變成了<iostream> ,<complex.h> 變成了<complex> ,等等。對於C頭文件,采用同樣的方法,但在每個名字前還要添加一個c。所以C的<string.h> 變成了<cstring> ,<stdio.h> 變成了<cstdio> ,等等。
舊的C++頭文件是官方所反對使用的(即,明確列出不再支持),但舊的C頭文件則沒有(以保持對C的兼容性)。
下面是C++頭文件的現狀:
· 舊的C++頭文件名如<iostream.h> 將會繼續被支持,盡管它們不在官方標准中。這些頭文件的內容不在名字空間std中。
· 新的C++頭文件如<iostream> 包含的基本功能和對應的舊頭文件相同,但頭文件的內容在名字空間std中。(在標准化的過程中,庫中有些部分的細節被修改了,所以舊頭文件和新頭文件中的實體不一定完全對應。)
· 標准C頭文件如<stdio.h> 繼續被支持。頭文件的內容不在std中。
· 具有C庫功能的新C++頭文件具有如<cstdio> 這樣的名字。它們提供的內容和相應的舊C頭文件相同,只是內容在std中
摘自 youhaoxinqin的專欄