06-C++基础-C++预处理器和iostream文件与头文件名

2.1.3 C++预处理器和iostream文件

    下面简要介绍一下需要知道的一些知识。如果程序要使用C++输入或输出工具,请提供这样两行代码:
    #include<iostream>
    using namespace std;
     可使用其他代码代替第二行,这里使用这行代码旨在简化程序(如果编译器不接受这几行代码,则说明它没有准守标准C++98,使用它来编译示例代码时,将出现众多其他的问题)。为使程序正常工作,只需要知道这些,下面更升入的介绍一下这些内容。
         C++和C一样,也使用一个预处理器,该程序在进行编译之前对源文件进行处理(第一章介绍过,有些C++实现使用的编译器程序将C++程序转换为C程序。虽然翻译器也是一种预处理器,但这里不讨论这种预处理器,而只讨论这样的预处理器,即它处理名称以#开头的编译指令)。不必执行任何特殊的操作来调用该预处理器,它会在编译程序是自动运行。
    程序2.1.1使用了#include编译指令:
    该编译指令导致预处理器将iostream文件的内容添加到程序中,这是一种典型的预处理器操作;在源代码被编译之前,替换或添加文本。
    这里提出了一个问题,为什么要将iostream文件的内容添加到程序中呢?答案涉及程序与外部世界之间的通信。iostream问的io指的是输入(进入程序的信息)和输出(从程序中发送出去的信息)。C++输入/输出方案涉及iostream文件汇总的多个定义。为了使用cout来显示消息,第一个程序需要这些定义。#include编译指令导致iostram文件中的内容随源代码文件的内容一起被发送给编译器。实际上,iostream文件的内容将取代程序中的代码行#include<iostream>。原始文件没有被修改,而是将源代码文件和iostream组合成一个复合文件,编译的下一阶段将使用该文件。

注意:使用cin和cout进行输入和输出的程序必须抱哈文件iostream。

2.1.4 头文件名

    像iostream这样的文件叫做包含文件——由于它们被包含在其他文件中:也叫头文件——由于它们被包含在文件的起始处。C++编译器自带了很多头文件,每个头文件都支持一组特定的工具。C语言的传统是,头文件使用扩展名h,将其作为一种通过名称标识文件类型的简单方式。例如,头文件math.h支持各种C语言数学函数,但C++的用法变了。现在,对老式C的头文件被转换成C++头文件,这些文件被重新命名,去掉了扩展名h(使之成为C++风格的名称)。并在文件名成前面加上前缀c(表面来自C语言)。例如,C++版本的math.h为cmath。有时C头文件的C版本和C++版本相同,而有时候新版本做了一些修改。对于纯粹的C++头文件(如iostream)来书,去掉h不只是形式上的变化,没有h的头文件也可以包含名称空间——本章的下一个主题。
    由于C使用不同的文件扩展名来表示不同文件类型,因此用一些特殊的扩展名(如.hpp或.hxx)表示C++头文件是有道理的额,ANSI/IOS委员会也会这样人文。问题在于究竟使用哪种扩展名,因此最终他们一致认为不适用任何扩展名。0

猜你喜欢

转载自blog.csdn.net/qq_41200424/article/details/80470334