zoukankan      html  css  js  c++  java
  • 文件结构

         每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。

    1  版权和版本的声明

       版权和版本的声明位于头文件和定义文件的开头,主要内容有:

    (1)版权信息。

    (2)文件名称,标识符,摘要。

    (3)当前版本号,作者/修改者,完成日期。

    (4)版本历史信息。

    2 头文件的结构

      头文件由三部分内容组成:

    (1)头文件开头处的版权和版本声明。

    (2)预处理块。

    (3)函数和类结构声明等。

    【规则1-2-1】为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。

    【规则1-2-2】用 #include <filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。

    【规则1-2-3】用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。

    【建议1-2-1】头文件中只存放“声明”而不存放“定义”

    在C++ 语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。建议将成员函数的定义与声明分开,不论该函数体有多么小。

    【建议1-2-2】不提倡使用全局变量,尽量不要在头文件中出现象extern intvalue 这类声明。 

    3 定义文件的结构

    定义文件有三部分内容:

    (1) 定义文件开头处的版权和版本声明。

    (2) 对一些头文件的引用。

    (3) 程序的实现体(包括数据和代码)。

    4 头文件的作用

    早期的编程语言如Basic、Fortran没有头文件的概念,C++/C语言的初学者虽然会用使用头文件,但常常不明其理。这里对头文件的作用略作解释:

    (1)通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。

    (2)头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。

    5 目录结构

    如果一个软件的头文件数目比较多(如超过十个),通常应将头文件和定义文件分别保存于不同的目录,以便于维护。

    例如可将头文件保存于include目录,将定义文件保存于source目录(可以是多级目录)。

    如果某些头文件是私有的,它不会被用户的程序直接引用,则没有必要公开其“声明”。为了加强信息隐藏,这些私有的头文件可以和定义文件存放于同一个目录。

  • 相关阅读:
    [CodeForces]Codeforces Round #429 (Div. 2) ABC(待补)
    About Me
    2018-06-14
    Codeforces Codeforces Round #484 (Div. 2) E. Billiard
    Codeforces Codeforces Round #484 (Div. 2) D. Shark
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes
    Codeforces Avito Code Challenge 2018 D. Bookshelves
    Codeforces Round #485 (Div. 2) D. Fair
    Codeforces Round #485 (Div. 2) F. AND Graph
  • 原文地址:https://www.cnblogs.com/7code/p/5051965.html
Copyright © 2011-2022 走看看