zoukankan      html  css  js  c++  java
  • C++文件包含处理—#include

    一、“文件包含”的作用

    所谓“文件包含”处理是指一个源文件可以将另外一个源文件的全部内容包含进来,即将另外的文件包含到本文件之中。C++提供了#include命令用来实现“文件包含”的操作。如在file1.cpp中有以下#include命令:   #include ″file2.cpp″
    它的作用见图4.18示意。

    图4.18

    “文件包含”命令是很有用的,它可以节省程序设计人员的重复劳动。 #include命令的应用很广泛,绝大多数C++程序中都包括#include命令。现在,库函数的开发者把这些信息写在一个文件中,用户只需将该文件“包含”进来即可(如调用数学函数的,应包含cmath文件),这就大大简化了程序,写一行#include命令的作用相当于写几十行、几百行甚至更多行的内容。这种常用在文件头部的被包含的文件称为“标题文件”或“头部文件”。
    头文件一般包含以下几类内容:

    1. 对类型的声明。
    2. 函数声明。
    3. 内置(inline)函数的定义。
    4. 宏定义。用#define定义的符号常量和用const声明的常变量。
    5. 全局变量定义。
    6. 外部变量声明。如entern int a;
    7. 还可以根据需要包含其他头文件。

    不同的头文件包括以上不同的信息,提供给程序设计者使用,这样,程序设计者不需自己重复书写这些信息,只需用一行#include命令就把这些信息包含到本文件了,大大地提高了编程效率。由于有了#include命令,就把不同的文件组合在一起,形成一个文件。因此说,头文件是源文件之间的接口。

    二、include命令的两种形式

    在#include命令中,文件名除了可以用尖括号括起来以外,还可以用双撇号括起来。#include命令的一般形式为   #include <文件名> 或    #include ″文件名″ 如    #include <iostream> 或    #include ″iostream″ 都是合法的。二者的区别是: 用尖括号时,系统到系统目录中寻找要包含的文件,如果找不到,编译系统就给出出错信息。
    有时被包含的文件不一定在系统目录中,这时应该用双撇号形式,在双撇号中指出文件路径和文件名。
    如果在双撇号中没有给出绝对路径,如#include ″file2.c″则默认指用户当前目录中的文件。系统先在用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找。如果程序中要包含的是用户自己编写的文件,宜用双撇号形式。
    对于系统提供的头文件,既可以用尖括号形式,也可以用双撇号形式,都能找到被包含的文件,但显然用尖括号形式更直截了当,效率更高。

    三、关于C++标准库

    在C++编译系统中,提供了许多系统函数和宏定义,而对函数的声明则分别存放在不同的头文件中。如果要调用某一个函数,就必须用#include命令将有关的头文件包含进来。C++的库除了保留C的大部分系统函数和宏定义外,还增加了预定义的模板和类。但是不同C++库的内容不完全相同,由各C++编译系统自行决定。不久前推出的C++标准将库的建设也纳入标准,规范化了C++标准库,以便使C++程序能够在不同的C++平台上工作,便于互相移植。新的C++标准库中的头文件一般不再包括后缀.h,例如     #include <string>
    但为了使大批已有的C程序能继续使用,许多C++编译系统保留了C的头文件,即提供两种不同的头文件,由程序设计者选用。如     #include <iostream.h> //C形式的头文件     #include <iostream>//C++形式的头文件 效果基本上是一样的。建议尽量用符合C++标准的形式,即在包含C++头文件时一般不用后缀。如果用户自己编写头文件,可以用.h为后缀。

  • 相关阅读:
    函数及习题
    数组和集合
    数组和集合实例
    普通集合和泛型集合的区别,哈希表和字典表的区别,队列和堆栈的区别以及堆和栈的区别。
    c#时间表示
    c#正则表达式
    js正则实例
    习题实例
    c#数据类型
    简单控件
  • 原文地址:https://www.cnblogs.com/eagleknight/p/3490643.html
Copyright © 2011-2022 走看看