参考:

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. C#小技巧

    1.将字符串转换成大写ToUpper string a="zxc"; a.ToUpper()  输出结果ZXC; a.ToUpper().Contains("Z" ...

  2. 2017-12 CDQZ集训(已完结)

    从联赛活了下来(虽然分数倒一……),接下来要去CDQZ集训啦…… DAY -2 2017-12-16 被老师安排负责一部分同学的住宿以及安排…… 抓紧时间继续学习,LCT真好玩啊真好玩…… 晚上放假了 ...

  3. VS2017企业版本(安装包+key)+ .NET Reflector 9.0

    关于VS2017安装的一点扩充说明(15.5):http://www.cnblogs.com/dunitian/p/8051985.html Key激活无需断网 Visual Studio 2017 ...

  4. web开发中的跨域整理

    1.springboot通过CROS实现跨域: https://www.cnblogs.com/520playboy/p/7306008.html springboot下各种跨域方式: http:// ...

  5. C++代理模式

    主要根据代理模式整理,感谢作者分享! [DP]上的定义:为其他对象提供一种代理以控制对这个对象的访问.有四种常用的情况:(1)远程代理,(2)虚代理,(3)保护代理,(4)智能引用.本文主要介绍虚代理 ...

  6. Angular.js浅谈

    至今博主对于MVVM框架比较了解的就只能算有Angular了,首先给大家明确一个概念,Angular1.x才能叫Angular.js,而Angular2.4.5都直接叫Angular了,因为从2开始已 ...

  7. Hadoop生态圈-Azkaban实现hive脚本执行

    Hadoop生态圈-Azkaban实现hive脚本执行 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客中在HDFS分布式系统取的数据,而这个数据的是有之前我通过MapRed ...

  8. ansible报错Aborting, target uses selinux but python bindings (libselinux-python) aren't installed【转】

    报错内容: TASK [activemq : jvm configuration] ********************************************************** ...

  9. 设置 Linux 服务器中 MySQL 允许远程访问

    开启 MySQL 远程访问权限: 在linux系统上登陆mysql服务. -- root 是用户名 [root@localhost ~]# mysql -u root -p Enter passwor ...

  10. webapi框架搭建系列博客

    webapi框架搭建系列博客 webapi框架搭建-创建项目(一) webapi框架搭建-创建项目(二)-以iis为部署环境的配置 webapi框架搭建-创建项目(三)-webapi owin web ...