C/C++头文件一览

C/C++头文件一览

C、传统 C++

#include <assert.h>    //设定插入点
#include <ctype.h>     //字符处理
#include <errno.h>     //定义错误码
#include <float.h>     //浮点数处理
#include <fstream.h>    //文件输入/输出
#include <iomanip.h>    //参数化输入/输出
#include <iostream.h>   //数据流输入/输出
#include <limits.h>    //定义各种数据类型最值常量
#include <locale.h>    //定义本地化函数
#include <math.h>     //定义数学函数
#include <stdio.h>     //定义输入/输出函数
#include <stdlib.h>    //定义杂项函数及内存分配函数
#include <string.h>    //字符串处理
#include <strstrea.h>   //基于数组的输入/输出
#include <time.h>     //定义关于时间的函数
#include <wchar.h>     //宽字符处理及输入/输出
#include <wctype.h>    //宽字符分类

//////////////////////////////////////////////////////////////////////////

标准 C++ (同上的不再注释)

#include <algorithm>    //STL 通用算法
#include <bitset>     //STL 位集容器
#include <cctype>
#include <cerrno>
#include <clocale>
#include <cmath>
#include <complex>     //复数类
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <deque>      //STL 双端队列容器
#include <exception>    //异常处理类
#include <fstream>
#include <functional>   //STL 定义运算函数(代替运算符)
#include <limits>
#include <list>      //STL 线性列表容器
#include <map>       //STL 映射容器
#include <iomanip>
#include <ios>       //基本输入/输出支持
#include <iosfwd>     //输入/输出系统使用的前置声明
#include <iostream>
#include <istream>     //基本输入流
#include <ostream>     //基本输出流
#include <queue>      //STL 队列容器
#include <set>       //STL 集合容器
#include <sstream>     //基于字符串的流
#include <stack>      //STL 堆栈容器    
#include <stdexcept>    //标准异常类
#include <streambuf>    //底层输入/输出支持
#include <string>     //字符串类
#include <utility>     //STL 通用模板类
#include <vector>     //STL 动态数组容器
#include <cwchar>
#include <cwctype>

using namespace std;

//////////////////////////////////////////////////////////////////////////

C99 增加

#include <complex.h>   //复数处理
#include <fenv.h>    //浮点环境
#include <inttypes.h>  //整数格式转换
#include <stdbool.h>   //布尔环境
#include <stdint.h>   //整型环境
#include <tgmath.h>   //通用类型数学宏

 

———————————————————————————————————

补充:

经常在CSDN以及其他之类的技术论坛上问关于C++ 头文件的问题。提出这些问题的往往就是那些刚学C++的新手。当初我是菜鸟的时候也问过类似的问题。

 

    现在来看看下面两个include:

 

    #include<iostream>     // 这个就是1998年标准化以后的标准头文件

 

    #include<iostream.h>       // 这个就是标准化以前的头文件

 

 

 

    更本质上的区别就是iostream把标准C++库的组件放在一个名位std的namespace里面。而相对的iostream.h则将这些标准组件放在全局空间里,同时在标准化以后旧有的C标准库也已经经过改造了。

 

    看看下面这两个头文件

 

    // 标准化后经过改造的C的标准库,所有的组件都放在了std中

 

    #include<cstdio>          

 

    // 标准化以前C++中的C标准库

 

    #include<stdio.h>

 

    // 在看看这个头文件C标准库下 基于char* 的字符处理函数库

 

    #include<string.h>

 

    // 在标准化以后他变成了这样

 

    #include<cstring>

 

    // 但是很多朋友还看见过这个字符串处理函数库,他包含了新的string class

 

    #include<string>

 

 

 

    经过了标准委员会如此大规模手术后,在98年以前出品的C++编译器(BC3.0,BC5.0)上能顺利通过编译的源文件,在支持新标准的编译器上可能无法顺利通过编译也就是很正常的事了。

 

 

 

[起因]

 

    在回过头来看看标准程序库,这个程序库涵盖范围相当广大,提过了许许多多好用的功能。正是因为这样标准程序库中class的名称和函数名与第三方提供的程序库中的class名或是函数名发生名字冲突的可能性大大增大。为了避免这个问题的发生,标准委员会决定将标准程序库中每一样东西都放在namespace std中。但是这么做同时有引来了一个新的问题。很多C++程序代码依赖那些已经存在很多年的C++ “准”标准程序库(C++迟迟未标准化才导致这些情况的发生),例如iosteam.h,complex.h等等。

 

 

 

    为了解决这个新出现的问题,标准化委员会决定设计一些新的头文件名,给那些穿上std外衣的组件所使用。把C++头文件的.h去掉,于是就有前面出现的iostream,同样C的头文件也做了相同的处理,同时在前面加上了一个字母c,以表示是C的头文件(感觉上有中种族歧视的感觉)。同时标准化委员会声明就有的C++头文件将不再列于被支持的名单之中了,而旧有的C头文件为了满足“对C的兼容性”这个古老契约,仍然将继续存活下去。

 

但是,那些编译器厂商不可能去推翻他们客户的旧有编译器(也跟本不会去这么做),所以那些旧有的C++头文件仍然苟延残喘的活了下来,并不断的扰乱那些C++新兵的心智。

 

 

 

    下面就是现在大多数C++开发工具表示头文件的组织状态:

 

1.    旧的C++头文件 比如iostream.h,他们虽然被标准化委员会所抛弃,但由于各大厂商为了各自的商业利益仍然将继续存活下去,这些头文件的内容将不处于namespace std中。

 

2.    新的C++头文件如iostream虽然提供了和旧有头文件相同的功能,但他的内容都并入了namespace std中,从而有效避免了名字污染的问题。

 

3.    标准C的头文件如stdio.h继续获得支持,这类文件的内容并未放在std中。

 

4.    C函数库的技能也有对应的新式C++版本,起名称类似cstdio,这类头文件的内容也有幸穿上了std的外衣。

 

 

 

其实标准化以后的标准程序库的改动并不只有这些而已,很多的标准化组件都被“tamplate化”。其中就有元老级人物iostream。标准程序库的问题并不是用一篇,两篇文章就可以说清楚的。如果你像进一步的了解C++的标准程序库的话,你可以看看侯先生的《C++标准程序库》。

 ———————————————————

CAnimateCtrl    afxcmn.h    
CArchive    afx.h    
CArchiveException    afx.h    
CArray    afxtempl.h    
CAsyncMonikerFile    afxole.h    
CAsyncSocket    afxsock.h    
CBitmap    afxwin.h    
CBitmapButton    afxext.h    
CBrush    afxwin.h    
CButton    afxwin.h    
CByteArray    afxcoll.h    
CCachedDataPathProperty    afxctl.h    
CCheckListBox    afxwin.h    
CClientDC    afxwin.h    
CCmdTarget    afxwin.h    
CCmdUI    afxwin.h    
CColorDialog    afxdlgs.h    
CComboBox    afxwin.h    
CComboBoxEx    afxcmn.h    
CCommandLineInfo    afxwin.h    
CCommonDialog    afxdlgs.h    
CConnectionPoint    afxdisp.h    
CControlBar    afxext.h    
CCriticalSection    afxmt.h    
CCtrlView    afxwin.h    
CDaoDatabase    afxdao.h    
CDaoException    afxdao.h    
CDaoFieldExchange    afxdao.h    
CDaoQueryDef    afxdao.h    
CDaoRecordset    afxdao.h    
CDaoRecordView    afxdao.h    
CDaoTableDef    afxdao.h    
CDaoWorkspace    afxdao.h    
CDatabase    afxdb.h    
CDataExchange    afxwin.h    
CDataPathProperty    afxctl.h    
CDateTimeCtrl    afxdtctl.h    
CDBException    afxdb.h    
CDBVariant    afxdb.h    
CDC    afxwin.h    
CDHtmlDialog    afxdhtml.h    
CDialog    afxwin.h    
CDialogBar    afxext.h    
CDocItem    afxole.h    
CDockState    afxadv.h    
CDocObjectServer    afxdocob.h    
CDocObjectServerItem    afxdocob.h    
CDocTemplate    afxwin.h    
CDocument    afxwin.h    
CDragListBox    afxcmn.h    
CDumpContext    afx.h    
CDWordArray    afxcoll.h    
CEdit    afxwin.h    
CEditView    afxext.h    
CEvent    afxmt.h    
CException    afx.h    
CFieldExchange    afxdb.h    
CFile    afx.h    
CFileDialog    afxdlgs.h    
CFileException    afx.h    
CFileFind    afx.h    
CFindReplaceDialog    afxdlgs.h    
CFont    afxwin.h    
CFontDialog    afxdlgs.h    
CFontHolder    afxctl.h    
CFormView    afxext.h    
CFrameWnd    afxwin.h    
CFtpConnection    afxinet.h    
CFtpFileFind    afxinet.h    
CGdiObject    afxwin.h    
CGopherConnection    afxinet.h    
CGopherFile    afxinet.h    
CGopherFileFind    afxinet.h    
CGopherLocator    afxinet.h    
CHeaderCtrl    afxcmn.h    
CHotKeyCtrl    afxcmn.h    
CHtmlEditCtrl    afxhtml.h    
CHtmlEditCtrlBase    afxhtml.h    
CHtmlEditDoc    afxhtml.h    
CHtmlEditView    afxhtml.h    
CHtmlStream    afxisapi.h    
CHtmlView    afxhtml.h    
CHttpArgList    afxisapi.h    
CHttpConnection    afxinet.h    
CHttpFile    afxinet.h    
CHttpFilter    afxisapi.h    
CHttpFilterContext    afxisapi.h    
CHttpServer    afxisapi.h    
CHttpServerContext    afxisapi.h    
CImageList    afxcmn.h    
CInternetConnection    afxinet.h    
CInternetException    afxinet.h    
CInternetFile    afxinet.h    
CInternetSession    afxinet.h    
CIPAddressCtrl    afxcmn.h    
CLinkCtrl    afxcmn.h    
CList    afxtempl.h    
CListBox    afxwin.h    
CListCtrl    afxcmn.h    
CListView    afxcview.h    
CLongBinary    afxdb_.h    
CMap    afxtempl.h    
CMapPtrToPtr    afxcoll.h    
CMapPtrToWord    afxcoll.h    
CMapStringToOb    afxcoll.h    
CMapStringToPtr    afxcoll.h    
CMapStringToString    afxcoll.h    
CMapWordToOb    afxcoll.h    
CMapWordToPtr    afxcoll.h    
CMDIChildWnd    afxwin.h    
CMDIFrameWnd    afxwin.h    
CMemFile    afx.h    
CMemoryException    afx.h    
CMenu    afxwin.h    
CMetaFileDC    afxext.h    
CMiniFrameWnd    afxwin.h    
CMonikerFile    afxole.h    
CMonthCalCtrl    afxdtctl.h    
CMultiDocTemplate    afxwin.h    
CMultiLock    afxmt.h    
CMultiPageDHtmlDialog    afxdhtml.h    
CMutex    afxmt.h    
CNotSupportedException    afx.h    
CObArray    afxcoll.h    
CObject    afx.h    
CObList    afxcoll.h    
COccManager    afxocc.h    
COleBusyDialog    afxodlgs.h    
COleChangeIconDialog    afxodlgs.h    
COleChangeSourceDialog    afxodlgs.h    
COleClientItem    afxole.h    
COleCmdUI    afxdocob.h    
COleControl    afxctl.h    
COleControlContainer    afxocc.h    
COleControlModule    afxctl.h    
COleControlSite    afxocc.h    
COleConvertDialog    afxodlgs.h    
COleCurrency    afxdisp.h    
COleDataObject    afxole.h    
COleDataSource    afxole.h    
COleDBRecordView    afxoledb.h    
COleDialog    afxodlgs.h    
COleDispatchDriver    afxdisp.h    
COleDispatchException    afxdisp.h    
COleDocObjectItem    afxole.h    
COleDocument    afxole.h    
COleDropSource    afxole.h    
COleDropTarget    afxole.h    
COleException    afxdisp.h    
COleInsertDialog    afxodlgs.h    
COleIPFrameWnd    afxole.h    
COleLinkingDoc    afxole.h    
COleLinksDialog    afxodlgs.h    
COleMessageFilter    afxole.h    
COleObjectFactory    afxdisp.h    
COlePasteSpecialDialog    afxodlgs.h    
COlePropertiesDialog    afxodlgs.h    
COlePropertyPage    afxctl.h    
COleResizeBar    afxole.h    
COleSafeArray    afxdisp.h    
COleServerDoc    afxole.h    
COleServerItem    afxole.h    
COleStreamFile    afxole.h    
COleTemplateServer    afxdisp.h    
COleUpdateDialog    afxodlgs.h    
COleVariant    afxdisp.h    
CPageSetupDialog    afxdlgs.h    
CPaintDC    afxwin.h    
CPalette    afxwin.h    
CPen    afxwin.h    
CPictureHolder    afxctl.h    
CPoint    atltypes.h    
CPrintDialog    afxdlgs.h    
CPrintDialogEx    afxdlgs.h    
CProgressCtrl    afxcmn.h    
CPropertyPage    afxdlgs.h    
CPropertySheet    afxdlgs.h    
CPropExchange    afxctl.h    
CPtrArray    afxcoll.h    
CPtrList    afxcoll.h    
CReBar    afxext.h    
CReBarCtrl    afxcmn.h    
CRecentFileList    afxadv.h    
CRecordset    afxdb.h    
CRecordView    afxdb.h    
CRect    atltypes.h    
CRectTracker    afxext.h    
CResourceException    afxwin.h    
CRgn    afxwin.h    
CRichEditCntrItem    afxrich.h    
CRichEditCtrl    afxcmn.h    
CRichEditDoc    afxrich.h    
CRichEditView    afxrich.h    
CScrollBar    afxwin.h    
CScrollView    afxwin.h    
CSemaphore    afxmt.h    
CSharedFile    afxadv.h    
CSingleDocTemplate    afxwin.h    
CSingleLock    afxmt.h    
CSize    atltypes.h    
CSliderCtrl    afxcmn.h    
CSocket    afxsock.h    
CSocketFile    afxsock.h    
CSpinButtonCtrl    afxcmn.h    
CSplitterWnd    afxext.h    
CStatic    afxwin.h    
CStatusBar    afxext.h    
CStatusBarCtrl    afxcmn.h    
CStdioFile    afx.h    
CStringArray    afxcoll.h    
CStringList    afxcoll.h    
CSyncObject    afxmt.h    
CTabCtrl    afxcmn.h    
CToolBar    afxext.h    
CToolBarCtrl    afxcmn.h    
CToolTipCtrl    afxcmn.h    
CTreeCtrl    afxcmn.h    
CTreeView    afxcview.h    
CTypedPtrArray    afxtempl.h    
CTypedPtrList    afxtempl.h    
CTypedPtrMap    afxtempl.h    
CUIntArray    afxcoll.h    
CUserException    afxwin.h    
CView    afxwin.h    
CWaitCursor    afxwin.h    
CWinApp    afxwin.h    
CWindowDC    afxwin.h    
CWinThread    afxwin.h    
CWnd    afxwin.h    
CWordArray    afxcoll.h

此条目发表在article分类目录,贴了标签。将固定链接加入收藏夹。