c++单独编译和c++的多文件组织结构

1.通常当一个程序代码较多较复杂时,我们会把一个程序分为几个部分,存放在不同的文件夹中,对于一个不是很复杂的程序,通常大概可以分为三个部分,一个头文件,两个源代码文件。

●头文件中通常包含以下内容:

     ☉函数原型

     ☉使用#define或const定义的符号常量

     ☉结构体声明

     ☉类声明

     ☉模板声明

     ☉内联函数

●第一个源代码文件:包含与结构体,模板,类相关的函数代码

●第二个源代码文件:包含调用与结构体,模板,类相关的函数代码


2.在包含我们自己定义的头文件时,我们应该用双引号“”,而不是尖括号<>。如果文件名包含在尖括号<>中,则c++编译器将在存储标准头文件的主机系统的文件系统中查找;但如果头文件包含在双引号中,则编译器首先查找当前的工作目录或代源码目录(或其他目录,取决于编译器)。如果没有在那里找到头文件,则将在标准位置查找。因此在包含自己定义的头文件时,应使用引号而不是尖括号。


3.在头文件中使用#ifndef, #define,#endif的原因:

因为我们在不知情的原因下,很可能将头文件包含多次。例如,可能使用包含了另外一个头文件的文件。有一种标准的c/c++技术可以避免多次包含同一个文件。它是基于预处理器编译指令#ifndef(即if not define)的,下面的代码片段意味着仅当前没有使用预处理器编译指令#define定义名称COORDIN_H_时,才处理#ifndef和#endif之间的语句:

#ifndef COORDIN_H_
...
#endif
编译器首次遇到该文件时,名称COORDIN_H_没有定义(这个名称是根据头文件的名字取得,并加上一些下划线,使其在其他地方不大可能被定义),在这种情况下,编译器将查看#ifndef和#endif之间的内容(这正是我们所希望看到的),如果在同一个文件中遇到其他包含coordin.h的内容,编译器就知道COORDIN_H_已经被定义了,从而跳到#endif后面的一行上。
     

4.c++的多文件组织结构实例:

下例中,分为三个文件,一个头文件,两个源代码文件:

结构如下:


file1文件中的内容:

c++单独编译和c++的多文件组织结构_第1张图片

file2文件中的内容:

c++单独编译和c++的多文件组织结构_第2张图片

coordin.h文件的内容:

c++单独编译和c++的多文件组织结构_第3张图片

你可能感兴趣的:(c++)