c++中#include头文件有两种形式,一种是使用尖括号<>,一种是使用双引号""。
#include为预处理语句,在程序的其它编译处理之前,先进行这些语句的处理。
#include <xxx.h>
系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下寻找
#include "xxx.h"
用户自定义的头文件用双括号括起来,编译器首先会在用户目录下寻找,然后再到C++的安装目录中查找(Linux中可以通过环境变量来设定),最后在系统文件中查找
总结:包含C++提供的头文件时,使用尖括号。#include "XXX.h"命令则是先在当前文件所在的目录搜索是否有符合的文件,如果没有再到系统文件夹里去找对应的头文件。
#include <iostream>和#include <iostream.h>:
#include <iostream> //1998年标准化以后的标准头文件
#include <iostream.h> //标准化以前的头文件
更本质的区别是iostream把标准C++库的组件放在一个名为std的namespace里面。而相对的iostream.h则将这些标准组件放在全局空间里,同时在标准化以后旧有的C标准库也已经经过改造了。
c++标准化的过程中,解决了以下问题:
(1)C++增加了名称空间的概念,借以将原来声明在全局空间下的标识符声明在了namespace std下
(2) 统一C++各种后缀名,如.h、.hpp、.hxx等。标准化之前的头文件就是带后缀名的文件,标准化后的头文件就是不带后缀名的文件。(旧版仍兼容)
即带.h的头文件是旧标准的,如果想用新标准的头文件就不要带.h
为了和C语言兼容,C++标准化的过程中,原有C语言头文件标准化后,头文件名前带个c字母,如cstdio、cstring、ctime、ctype等。
即如果要用C++标准化了的C语言头文件,就要做如下转换:
#include <stdio.h> -----> #include <cstdio>
#include <stdlib.h> -----> #include <cstdlib>
#include <string.h> ------> #include <cstring>
#include <iostream.h>是 C语言中比较通用的
#include <iostream>
using namespace std; 是C++中比较通用的。iostream包含的基本功能和对应的旧头文件相同,但头文件的内容在名字空间std中。