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