参考:

c run-time libraries:  http://msdn.microsoft.com/zh-cn/library/vstudio/abx4dbyh(v=vs.100).aspx

Header Files:http://msdn.microsoft.com/zh-cn/library/vstudio/a7tkse1h(v=vs.100).aspx

c/c++头文件一览:http://blog.csdn.net/jerry0597/article/details/1166285

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>   //通用类型数学宏

以下引用自http://club.topsage.com/thread-2271422-1-1.html

C++中#include包含头文件带 .h 和不带 .h 的区别? 如 #include <iostream> 和 #include <iostream.h> 包含的东西有哪些不同?
之前在写C++程序的时候只知道使用 #include <iostream> 的时候,使用函数前要用 using namespace std; 导入命名空间,而 #include <iostream.h> 则不用,这个得看C++标准化过程为C++开发者做了哪些有意义的工作。
C++标准化过程中,其中一个环节,解决了以下问题:
(1)C++增加了名称空间概念,借以将原来声明在全局空间下的标识符声明在了namespace std下。
(2)统一C++各种后缀名,如.h、.hpp、.hxx等。标准化之前的头文件就是带后缀名的文件,标准化后的头文件就是不带后缀名的文件。C++ 98 规定用户应使用新版头文件,对旧版本头文件不在进行强制规范,但大多数编译器厂商依然提供旧版本头文件,以求向下兼容。
也就是说带 .h 的头文件是旧标准的,如果想用新的标准的头文件就不要带 .h。
另外,为了和C语言兼容,C++标准化过程中,原有C语言头文件标准化后,头文件名前带个c字母,如cstdio、cstring、ctime、ctype等等。这些头文件都可以在 C:\Program Files\Microsoft Visual Studio 10.0\VC\include 这个目录下找到(以VC2010为例)。也就是说,我们如果要用C++标准化了的C语言头文件,就得作如下的转换
#include <stdio.h> --> #include <cstdio> #include <stdlib.h> --> #include <cstdlib> #include <string.h> --> #include <cstring>
还要提及的一点是,我在看C++标准库的时候,看到一个特殊情况 <memory.h> 和 <memory>,这两个头文件是完全不同的,因为我发现 <memory.h>头文件件包含了 <mem.h>;而 <memory> 包含 <memory.stl>
这里摘录 memory.h 中的一段代码:

  1. #if !defined(__cplusplus)
  2. #  include <mem.h>
  3. #else /* __cplusplus */
  4. #  if !defined(__USING_STD_NAMES__)
  5. #    include <mem.h>
  6. #  else /* __USING_STD_NAMES__ */
  7. #    include <memory.stl>
  8. #  endif /* __USING_STD_NAMES__ */
  9. #endif /* __cplusplus */

关于这一点,不知道我理解的是否到位,还请大家多讨论、指点

c run-time library 和 standard c++ library的更多相关文章

  1. [c++] STL = Standard Template Library

    How many people give up, because of YOU. Continue... 先实践,最后需要总结. 1. 数据流中的数据按照一定的格式<T>提取 ------ ...

  2. 自定义标签 与 JSTL(JSP Standard Tag Library)

    1.自定义标签 [理解]     [1]简介            > 在JSP2.0以后,在jsp页面中不建议使用脚本片段<% %>和JSP表达式<%= %>     ...

  3. C++ Standard Template Library STL(undone)

    目录 . C++标准模版库(Standard Template Library STL) . C++ STL容器 . C++ STL 顺序性容器 . C++ STL 关联式容器 . C++ STL 容 ...

  4. JSTL的全称:JSP Standard Tag Library, jsp 标准标签库

    JSTL的全称:JSP Standard Tag Library, jsp 标准标签库 JSTL的作用     提供给Java web开发人员一个标准通过的标签函数库和EL来取代传统直接在页面上嵌入j ...

  5. JSTL(JSP Standard Tag Library ,JSP标准标签库)

    JSTL标签之核心标签   JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断.数据管 ...

  6. JSTL 标准标签库 (JavaServer Pages Standard Tag library, JSTL)

    JSP标准标签库(JavaServer Pages Standard Tag Library,JSTL)是一个定制标签库的集合,用来解决 像遍历Map或集合.条件测试.XML处理,甚至数据 库访问和数 ...

  7. 【概念的辨异】—— ISO C 与 POSIX C(C standard library 与 C POSIX library)

    ISO C 表示 C Standard Library,也就是 C 标准库. 二者的主要区别在于: POSIX 是 C 标准库的超集(也即是从内容上,C 标准库是 POSIX 库的一部分,POSIX ...

  8. php spl标准库简介(SPL是Standard PHP Library(PHP标准库)(直接看代码实例,特别方便)

    php spl标准库简介(SPL是Standard PHP Library(PHP标准库)(直接看代码实例,特别方便) 一.总结 直接看代码实例,特别方便易懂 thinkphp控制器利眠宁不支持(说明 ...

  9. 如何使用event 10049分析定位library cache lock and library cache pin

    Oracle Library Cache 的 lock 与 pin 说明 一. 相关的基本概念 之前整理了一篇blog,讲了Library Cache 的机制,参考: Oracle Library c ...

随机推荐

  1. 在delphi中我用DBGrid选择多条记录,如何一次把选择的多条记录删掉

    procedure TForm1.btnDoSumClick(Sender: TObject);var  i: Integer;begin  if DBGrid1.SelectedRows.Count ...

  2. 使用AutoMapper实现Dto和Model的自由转换(中)

    在上一篇文章中我们构造出了完整的应用场景,包括我们的Model.Dto以及它们之间的转换规则.下面就可以卷起袖子,开始我们的AutoMapper之旅了. [二]以Convention方式实现零配置的对 ...

  3. 【题解】 [SCOI2011]糖果 (差分约束)

    懒得复制,戳我戳我 Solution: 首先考虑\(X=1\)的情况,我们其实只用用一下并查集把相等的点合为一个点 然后后面的四个式子我们就可以用差分约束了,就拿\(X=2\)的情况来说吧,我们用\( ...

  4. Docker中Spring boot+VueJS+MongoDB的前后端分离哲学摔跤

    此文献给对数据有热情,想长期从事此行业的年轻人,希望对你们有所启发,并快速调整思路和方向,让自己的职业生涯有更好的发展. 根据数据应用的不同阶段,本文将从数据底层到最后应用,来谈谈那些数据人的必备技能 ...

  5. 架构师成长之路1.1-系统监控工具htop

    点击返回架构师成长之路 架构师成长之路1.1-系统监控工具htop htop 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses. 与Linu ...

  6. OAuth2的基本概念的理解

    书籍推荐 OAuth2 in Action -- 原理 OAuth2 Cookbook -- 实践 OAuth2 解决的问题域 开放系统间授权 社交联合登录 开放API平台 现代微服务安全 单页浏览器 ...

  7. ssh框架配置过程

    1.pom.xml配置依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  8. python3中__get__,__getattr__,__getattribute__的区别

    __get__,__getattr__和__getattribute都是访问属性的方法,但不太相同. object.__getattr__(self, name) 当一般位置找不到attribute的 ...

  9. python学习笔记5--加密模块hashlib

    import hashlib # md5 ybm_pwd='yuanbapqingsdfs234FF234HF@F' # m = hashlib.md5() # bytes_ybq = ybm_pwd ...

  10. HTML5 拖拽实现

    简介: 最早在网页中引入JavaScript拖放功能是IE4.当时,网页中只有两种对象可以拖放:图像和某些文本.拖放图像时,把鼠标放到图像上,按住鼠标不放就可以拖放它.拖放文本时,要先选中文本,然后可 ...