Chinaunix首页 | 论坛 | 博客
  • 博客访问: 247169
  • 博文数量: 29
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 670
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-19 13:30
文章分类

全部博文(29)

文章存档

2011年(1)

2010年(10)

2009年(1)

2008年(17)

我的朋友

分类: C/C++

2008-07-10 11:29:58

#include 和 #include 有什么区别?

    表示你使用的是标准命名空间,也就是在程序开始应该有这么一句话

    using namespace std ;

这是遵循c++标准的

    相反,"iostream.h" 则没有遵循c++标准 ,这是老式的命名方式 ,延承自C语言。

 

 

这是网上摘抄的一相关解释:

 

    其实没有 < iostream.h > 这样的东西 --- 标准化委员会在简化非C标准头文件时用 < iostream > 取代了它。但又没有完全取消 < iostream.h > 的使用,并且很多编译器都同时支持 < iostream > < iostream.h > ,造成现在的局面,老大(标准化委员会)确实有不得已的苦衷。

 

 

    话说当年,在标准化委员会动手重建新的标准库的时候,遇到了问题。为了避免类名和函数名的冲突问题,引入了名字空间std。但无数现有的C++代码都依赖于使用了多年的伪标准库中的功能,例如,声明在 < iostream.h > < complex.h > 等头文件中的功能。现有软件没有针对使用名字空间而进行相应的设计或者升级,如果用std来包装标准库导致现有代码不能使用,那手底下的小弟(程序员)是不会同意的。

    标准化委员会为了拉拢人心,吸引更多的人入会,决定为包装了std的那部分标准库构建新的头文件名。将现有C++头文件名中的.h去掉,所以就出现了 < iostream.h> < iostream > 等很多双胞胎。对于C头文件,采用同样方法但在每个名字前还要添加一个C,所以C 变成了

旧的C++头文件是官方明确反对使用的,但旧的C头文件则没有(以保持对C的兼容性)。其实编译器制造商不会停止对客户现有软件提供支持,所以在可以预计的将来,旧的C++头文件还会嚣张一段时间。

    如果能明白字符串头文件的使用,举一反三,其他的也差不多会用了。

    是旧的C头文件,对应的是基于char*的字符串处理函数;

    是包装了std管理员在2009年8月13日编辑了该文章文章。

-->
阅读(2035) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-07-14 12:17:55

傻逼文章写这么窄干你妈b啊