首页 > 代码库 > C++复习笔记(一)文件结构

C++复习笔记(一)文件结构

1、文件结构
 
      每个C++/C程序通常分为两个文件:
            a、用于保存程序的声明(declaration),称为头文件。
            b、用于保存程序的实现(implementation),称为定义文件(definition)。
      C++/C程序的头文件以".h"为后缀,C程序的定义文件以".c"为后缀,C++程序的定义文件通常以".cpp"为后缀。
 
    头文件的结构:
        头文件由三个部分内容组成:
        (1)头文件开头处的版权和版本声明。
        (2)预处理块。
        (3)函数和类结构声明等。    
    头文件的书写规则:
        (1)为了防止头文件被重复引用,应当用 ifndef/define/endif 结构产生预处理块!
        (2)用 #include < filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。
        (3)用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。
    建议:
        (1)头文件中指存放声明而不存放定义
                在C++语法中,类的成员函数可以在声明的同事被定义,并且自动生成内联函数。这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。因此间最好将成员函数的函数声明和定义分开,无论该函数体多么小!
        (2)不建议使用全局变量,尽量不要在头文件中出现extern int value 这类声明。
 
    定义文件的结构:
        定义文件有三部分内容:
        (1)定义文件开头出的版权和版本声明。
        (2)对一些头文件的引用。
        (3)程序的实现体(包括数据和代码)。
 
    头文件的作用:
        (1)通过头文件来调用库功能。
                在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库的功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。
        (2)头文件能加强类型安全检查。
                如果某个接口被实现或者使用时,其方式与头文件中声明不一致,编译器就会支出错误,这一简单的规则能大大减轻程序猿调试、改错的负担。
    
    目录结构:
        如果一个软件的头文件数目比较多,通常应将头文件和定义文件分别保存于不同的目录,以便于维护和管理。
        如果某些头文件是私有的,它不会被用户的程序直接引用,则没必要公开其声明。为了加强隐藏,这些私有的头文件和定义文件可以存放于同一目录!