zoukankan      html  css  js  c++  java
  • 高质量C /C编程指南第1章 文件结构

    第1章 文件结构

    每个C /C按次伟年夜分为两个文件。一个文件用于保管按次的声明(declaration),称为头文件。另一个文件用于保管按次的完成(implementation),称为界说(definition)文件。

    C /C按次的头文件以“.h”为后缀,C按次的界说文件以“.c”为后缀,C 按次的界说文件伟年夜以“.cpp”为后缀(也有一些体系以“.cc”或“.cxx”为后缀)。

    1.1 版权和版本的声明

    版权和版本的声明位于头文件和界说文件的收尾(参见教例1-1),重要内容有:

    (1)版权信息。

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

    (3)今后版本号,作者/修正者,完成日期。

    (4)版本汗青信息。

     

    /*

    * Copyright (c) 2001,上海贝尔有限公司网络使用奇观部

    * All rights reserved.

    *

    * 文件称呼:filename.h

    * 文件标识:见设置装备放置办理设计书

    * 摘    要:简明描画本文件的内容

    *

    * 今后版本:1.1

    * 作    者:输出作者(或修正者)名字

    * 完成日期:2001年7月20日

    *

    * 取代版本:1.0

    * 原作者  :输出原作者(或修正者)名字

    * 完成日期:2001年5月10日

    */

     

    示例1-1 版权和版本的声明

    1.2 头文件的结构

    头文件由三部分外容构成:

    (1)头文件收尾处的版权和版本声明(参见教例1-1)。

    (2)预处置惩罚块。

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

    假定头文件称呼为 graphics.h,头文件的结构参见教例1-2。

     

    l         【端方1-2-1为了防备头文件被重复援用,该当用ifndef/define/endif结构发作预处置惩罚块。

    l         【端方1-2-2用 #include <filename.h> 把戏来援用标准库的头文件(编译器将从标准库目录初阶搜索)。

    l         【端方1-2-3用 #include “filename.h” 把戏来援用非标准库的头文件(编译器将从用户的任务目录初阶搜索)。

    ²        【提倡1-2-1头文件中只存放“声明”而不存放“界说”

    在C 语法中,类的成员函数可以在声明的同时被界说,并且主动成为内联函数。这固然会带来书写上的等闲,但却形成了风格不不同,弊年夜于利。提倡将成员函数的界说与声明分隔隔离分手,非论该函数体有多么小。

    ²        【提倡1-2-2不倡议运用全局变量,尽量不要在头文件中泛起象extern int value 这类声明。

     

    // 版权和版本声明见教例1-1,此处省略。

     

    #ifndef   GRAPHICS_H  // 防备graphics.h被重复援用

    #define   GRAPHICS_H

     

    #include <math.h>     // 援用标准库的头文件


    #include “myheader.h”   // 援用非标准库的头文件


    void Function1(…);   // 全局函数声明


    >             // 类结构声明

    {


    };

    #endif

    示例1-2 C /C头文件的结构

     

    1.3 界说文件的结构

    界说文件有三部分外容:

    (1)       界说文件收尾处的版权和版本声明(参见教例1-1)。

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

    (3)       按次的完成体(包罗数据和代码)。

    假定界说文件的称呼为 graphics.cpp,界说文件的结构参见教例1-3。

     

    // 版权和版本声明见教例1-1,此处省略。

     

    #include “graphics.h”     // 援用头文件


     

    // 全局函数的完成体

    void Function1(…)

    {


    }

     

    // 类成员函数的完成体

    void Box::Draw(…)

    {


    }

    示例1-3 C /C界说文件的结构

    1.4 头文件的浸染

    早期的编程语言如Basic、Fortran没有头文件的观点,C /C语言的初学者固然会用运用头文件,但经常不明其理。这里仇家文件的浸染略作解释:

    (1)经由甚文件来挪用库功用。在许多场所,源代码便利(或禁绝)向用户颁布揭橥,只需向用户供应头文件和二进制的库即可。用户只需求依照头文件中的接口声明来挪用库功用,而不用关切接口怎样完成的。编译器会从库中提取响应的代码。

    (2)头文件能加强');圭臬安详反省。假定某个接口被完成或被运用时,其体式把戏与头文件中的声明不不同,编译器就会指犯错误,这一庞年夜的端方能年夜年夜加重按次员调试、改错的担负。

    1.5 目录结构

    假定一个软件的头文件数目对照多(如跨越十个),伟年夜应将头文件和界说文件划分保管于不同的目录,以便于维护。

    比方可将头文件保管于include目录,将界说文件保管于source目录(可以是多级目录)。

    假定某些头文件是公有的,它不会被用户的按次间接援用,则没有必要地下其“声明”。为了加强');信息隐蔽,这些公有的头文件可以和界说文件存放于一致个目录。



    版权声明: 原创作品,答应转载,转载时请务必以超链接方法标明文章 原始来由 、作者信息和本声明。否则将穷究功令责任。

  • 相关阅读:
    关于匹配的一些问题
    Codeforces Round #396 (Div. 2) A,B,C,D,E
    Codeforces Round #394 (Div. 2) A,B,C,D,E
    HDU 1848 SG函数博弈
    HDU 1536 S-Nim SG博弈
    HDU 2509 Be the Winner nim博弈变形
    HDU 1907 John nim博弈变形
    Codeforces Round #222 (Div. 1) D. Developing Game 线段树有效区间合并
    BZOJ 1031: [JSOI2007]字符加密Cipher 后缀数组
    HDU 5769 Substring 后缀数组
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1974834.html
Copyright © 2011-2022 走看看