C++新手入门——从头开始学代码:(C++编程时的头文件和C的区别)&&(头文件#i ...

打印 上一主题 下一主题

主题 756|帖子 756|积分 2268

目录

媒介
1.C语言的头文件
1.1 文件包罗命令
1.2 文件包罗命令的格式
1.3 文件包罗处置惩罚过程
2. C++头文件与C头文件的区别
2.1 带后缀头文件的利用
2.2 不带后缀的头文件的利用
3. 标准输入输出头文件iostream


媒介

在一组代码开始时,我们总是会先写上: 
  1. #include<iostream>
复制代码
大家都知道如果不写上这个文件,代码就无法运行,但是我们为什么要以这样的方式开始一段代码呢?由于C++是由C发展而来的语言,我们先从C的头文件概念入手。

1.C语言的头文件

#include 英文意为包罗,后面会接上一个用"   "或者<   >括起来的文件,我们称这样的操作为:文件包罗命令。
1.1 文件包罗命令

文件包罗命令的定义:①文件包罗是指一个源文件可以将另一个源文件全部内容包罗进来。②文件包罗命令可以将多个模块共用的数据(如符号常量和数据结构)或函数会合到一个单独的文件中。
简朴来说,只要利用了#include命令,就能获得别的已经编辑好的文件里的数据和函数了。
1.2 文件包罗命令的格式

【格式一】#include "文件名"
系统首先到当前源文件所在的目录查找被包罗文件,如果没有找到,再到系统指定的 “包罗文件目录” 去查找,必要时在文件名前加上所在的路径。
比如我们在VS编程中,可以看到有头文件和源文件,在这点击创建头文件.h和源文件.c/.cpp,他们就会被放在同一目录下,故我们在自己编写的源文件里引用自己编写的头文件用的格式为#include"  "(后面无须加分号)

【格式二】#include <文件名>
直接到系统指定的 “包罗文件目录” 去查找。

1.3 文件包罗处置惩罚过程

文件包罗操作是编译预处置惩罚命令,用来指示编译器在对程序进行预处置惩罚时将被包罗文件文件的代码嵌入到程序中该指令所在的地方。
也可以说:预编译时,用被包罗文件的内容取代文件包罗命令,再将 “包罗” 后的文件作为一个源文件单元进行编译,得目的文件 .obj。


2. C++头文件与C头文件的区别

由于C++是从C语言发展而来的,为了与C兼容,C++生存了C语言中的一些规定。例如,在C语言中头文件用".h"作为后缀,如stdio.h、math.h等。为了与C语言兼容,许多C++早期版本的编译系统头文件都是“∗.h”情势,如iostream.h等。但后来ANSIC++建议头文件不带后缀“.h”。
近年推出的C++编译系统新版本则采用了C++的新方法,头文件名不再有“.h”扩展名。如采用iostream、cmath等,但为了使原来编写的C++程序能够运行,在程序中既可以选择利用旧版本的带后缀“.h”的头文件也可以利用新的不带后缀“.h”的头文件。

可以看到,编译软件并没有报错。
2.1 带后缀头文件的利用

在C语言程序中头文件包括后缀“.h”,如stdio.h , string.h等。由于C语言没有命名空间(关于命名空间,会在后面几期的博客提到),头文件不存放在命名空间中,因此在C++程序中,如果利用带后缀“.h”的头文件,不必用命名空间。
只需在文件中包罗所用的头文件即可。如:
#include< stdio.h>
 
2.2 不带后缀的头文件的利用

C++标准要求系统提供的头文件不包括后缀“.h”,例如string , iostream。为了表现C++与C语言的头文件既有接洽又有区别,C++所用的头文件不带后缀字符“.h”,而是在C语言的相应的头文件名之前加上前缀字符c
例如,C语言中的头文件 stdio. h,在C+中相应的头文件名为cstdio。C语言中的头文件 string.h,在C++中相应的头文件名为cstring。
利用C+中不带后缀的头文件时,需要在程序中声明命名空间std。如:
  1. #include<cstdio>      //相当于c程序中的#include<stdio.h>
  2. #include<cstring>     //相当于c程序中的#include<string.h>
  3. using namespace std;  //声明使用命名空间std
复制代码
利用头文件的两种方法是等价的,可以任意选用。但利用带后缀的头文件时,不需要在程序中声明命名空间std。
 
3. 标准输入输出头文件iostream

iostream是C++系统定义的一个头文件,在这个文件中声明白程序所需要的输入和输出操作的有关信息。流对象cin , cout 及运算符“<<” “>>”的定义,均包罗在文件iostream中。由于这类文件常被嵌入在程序开始处,以是称为头文件。
我们可以将iostream拆分为两个部分。
-io部分:i表现input输入,o表现output输出;
-stream部分:流对象。(可以理解为一个操尴尬刁难象,以后会详细介绍)





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

温锦文欧普厨电及净水器总代理

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表