带H的头文件和不带H的头文件

时间:2022-05-08 23:45:06
我的开发环境是vc6.0,在包含头文件的时候,有的头文件后面要加H,如果不加H会出错,但是有的头文件则不能加H,如果加上H会出错,
如#include "windows.h",如果写成#include"windows"编译会出错,
又如:#include"vector",如果写成#include"vector.h"编译会出错.
而#include"iostream"和#include"iostream.h"编译都不会出错.
望高手赐教!!!

7 个解决方案

#1


不带.h的是 stl库

#2


#include 后面只要跟的是一个文件名字就可以

做为约定,头文件一般叫.h

但你可以可以叫别的,比如stl的库文件就没后缀

如果你喜欢,你可以写个叫 aa.txt

的文件

然后include “aa.txt”

#3


带h是c语言头文件,不带是C++头文件

#4




>如#include "windows.h",如果写成#include"windows"编译会出错,
因为windows.h是一个实际存在的文件, 而实际上没有名为windows的文件.
你应该可以在你的  VC6\Include\  下找到它们

>又如:#include"vector",如果写成#include"vector.h"编译会出错.
>而#include"iostream"和#include"iostream.h"编译都不会出错.
同样, 有名字叫vector的头文件,但没有叫vector.h的文件. 
很奇怪,对吧? 一会有扩展名,一会没有.但事实情况就是这样.

一般 标准C++的头文件都是不带.h的, 比如
#include<vector>
#include<list>
#include<iostream>
而C的头文件一般是带.h的.


为啥C++不也带.h呢, 因为C++标准规范出台的比较晚,
在其之前,翻译器出产商根据C++草案提供很多并不规范的库,
占用的头文件就是vector.h, iostream.h这样的名字,
为了避免和它们冲突,标准用了vector, iostream这样无后缀名字,


>>望高手赐教!!!
 解释完毕, :p

#5


看看c++ primer 自己就知道了

#6


楼上"roadtang() "说的太对了.

#7


#include 里的文件是确定存在的。
如:
windows.h存在,而windows不存在时,include <windows.h>是对的,而include <windows>则是错误的。

另外,VC6出来时,C++标准还未定型,所以VC6使用<vector.h>这类带.h的头文件。
C++标准出来之后,STL文件都以没有扩展名的文件存在。

顺便说一下,VC6发布先于C++标准,因此,它对STL等的支持并不完整和规范,建议使用VC7或以上版本的IDE。

#1


不带.h的是 stl库

#2


#include 后面只要跟的是一个文件名字就可以

做为约定,头文件一般叫.h

但你可以可以叫别的,比如stl的库文件就没后缀

如果你喜欢,你可以写个叫 aa.txt

的文件

然后include “aa.txt”

#3


带h是c语言头文件,不带是C++头文件

#4




>如#include "windows.h",如果写成#include"windows"编译会出错,
因为windows.h是一个实际存在的文件, 而实际上没有名为windows的文件.
你应该可以在你的  VC6\Include\  下找到它们

>又如:#include"vector",如果写成#include"vector.h"编译会出错.
>而#include"iostream"和#include"iostream.h"编译都不会出错.
同样, 有名字叫vector的头文件,但没有叫vector.h的文件. 
很奇怪,对吧? 一会有扩展名,一会没有.但事实情况就是这样.

一般 标准C++的头文件都是不带.h的, 比如
#include<vector>
#include<list>
#include<iostream>
而C的头文件一般是带.h的.


为啥C++不也带.h呢, 因为C++标准规范出台的比较晚,
在其之前,翻译器出产商根据C++草案提供很多并不规范的库,
占用的头文件就是vector.h, iostream.h这样的名字,
为了避免和它们冲突,标准用了vector, iostream这样无后缀名字,


>>望高手赐教!!!
 解释完毕, :p

#5


看看c++ primer 自己就知道了

#6


楼上"roadtang() "说的太对了.

#7


#include 里的文件是确定存在的。
如:
windows.h存在,而windows不存在时,include <windows.h>是对的,而include <windows>则是错误的。

另外,VC6出来时,C++标准还未定型,所以VC6使用<vector.h>这类带.h的头文件。
C++标准出来之后,STL文件都以没有扩展名的文件存在。

顺便说一下,VC6发布先于C++标准,因此,它对STL等的支持并不完整和规范,建议使用VC7或以上版本的IDE。